gpt4 book ai didi

c# - .net 6 最小 api docker 问题 : error CS5001: Program does not contain a static 'Main' method suitable for an entry point

转载 作者:行者123 更新时间:2023-12-05 02:31:06 26 4
gpt4 key购买 nike

我见过许多类似的问题,但似乎没有一个能准确代表我面临的问题。当我创建如下文件夹结构时:

./
./src
./src/test

然后导航到 ./src/test 并运行 dotnet new webapi -lang c#,这将创建一个运行良好的最小 API。我也可以毫无问题地运行 dotnet publish -c RELEASE -o out/p:Version=1.0.0

然后当我尝试在根级别创建一个包含以下内容的 docker 文件时:

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build

ARG BUILDCONFIG=RELEASE
ARG VERSION=1.0.0

COPY ./src/test/test.csproj ./src/test/
RUN dotnet restore ./src/test/test.csproj

COPY ./src/ ./
WORKDIR ./src/test/
RUN dotnet publish -c $BUILDCONFIG -o out /p:Version=$VERSION

FROM mcr.microsoft.com/dotnet/sdk:6.0
WORKDIR /app
COPY --from=build /src/test/out ./

EXPOSE 5000
ENTRYPOINT ["dotnet", "test.dll"]

我得到以下输出:

 => ERROR [build 6/6] RUN dotnet publish -c RELEASE -o out /p:Version=1.0.0                                        2.5s
------
> [build 6/6] RUN dotnet publish -c RELEASE -o out /p:Version=1.0.0:
#11 0.511 Microsoft (R) Build Engine version 17.1.0+ae57d105c for .NET
#11 0.511 Copyright (C) Microsoft Corporation. All rights reserved.
#11 0.511
#11 0.931 Determining projects to restore...
#11 1.153 All projects are up-to-date for restore.
#11 2.400 CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/src/test/test.csproj]

我尝试了一些方法,包括将 csproj 中的 OutputType 设置为 Exe,将 DockerDefaultTargetOS 设置为 win/linux 和其他一些我在其他线程中发现的建议,但最终我总是得到同样的错误。有什么想法可能是错误的吗?

最佳答案

错误信息不是解释性的。

真正的错误在COPY ./src/ ./行.使用此命令,您可以将 src 文件夹 (test) 的内容复制到容器的根目录中。

应该是COPY ./src/ /src/或(更好)./src /src

尝试注释掉除前 9 行之外的所有内容,构建容器并运行

docker run --rm -it <imagename> /bin/sh看看你自己。

由于您尝试构建一个空文件夹,编译器会引发未找到主要方法的错误(实际上它找不到任何东西...)

关于c# - .net 6 最小 api docker 问题 : error CS5001: Program does not contain a static 'Main' method suitable for an entry point,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71669487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com