MSBUILD:错误 MSB1011:指定要使用的项目或解决方案文件,因为此文件夹包含多个项目或解决方案文件

pj0*_*402 9 asp.net docker

我是 docker 新手,正在尝试为 ASP.NET Core 应用程序创建一个 Dockerfile。有人可以建议我需要哪些更改吗?

这是我的 Dockerfile:

FROM microsoft/dotnet:2.1-sdk  
WORKDIR /app  
COPY Presentation/ECCP.Web/ *.csproj ./  
RUN dotnet restore  
COPY . ./  
RUN dotnet publish -c Release -o out  

FROM microsoft/aspnetcore:2.0  
WORKDIR /app  
COPY --from=build-env /app/out .  
ENTRYPOINT ["dotnet", "api.dll"]  
Run Code Online (Sandbox Code Playgroud)

我面临以下错误:

MSBUILD:错误 MSB1011:指定要使用的项目或解决方案文件,因为此文件夹包含多个项目或解决方案文件。命令“/bin/sh -c dotnet publish -c Release -o out”返回非零代码:1

fan*_*son 22

看起来您的工作目录包含 .csproj 和 .sln 文件。尝试在命令中指定 .sln 文件。跑

dotnet publish your-solution-file.sln -c Release -o out
Run Code Online (Sandbox Code Playgroud)

我在 dotnet build 中有相同的错误消息,这解决了它。

顺便说一下,从 .NET Core 2.0 开始,dotnet restore 命令是隐式运行的,所以你可以跳过它。