小编Whi*_*der的帖子

.net 6 最小 api docker 问题:错误 CS5001:程序不包含适合入口点的静态“Main”方法

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

./
./src
./src/test
Run Code Online (Sandbox Code Playgroud)

然后导航到./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"]
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

 => ERROR [build 6/6] RUN dotnet publish -c RELEASE -o out /p:Version=1.0.0                                        2.5s …
Run Code Online (Sandbox Code Playgroud)

c# dockerfile minimal-apis

5
推荐指数
1
解决办法
3565
查看次数

标签 统计

c# ×1

dockerfile ×1

minimal-apis ×1