Docker无法在Azure Pipelines中生成“错误MSB1001”

Ben*_*ean 3 asp.net docker dockerfile azure-devops azure-pipelines

面临着奇怪的问题。当我Dockerfile在Windows机器(Laptop)上构建我的计算机时,出现以下错误,并且尝试在上部署时也出现相同的错误Azure DevOps

Step 7/17 : COPY ["WebApp.csproj", ""]
 ---> 3f3e198d00aa
Step 8/17 : RUN dotnet restore "/WebApp.csproj"
 ---> Running in 51f16f947ffb
MSBUILD : error MSB1001: Unknown switch.
Switch: /WebApp.csproj

For switch syntax, type "MSBuild -help"
The command '/bin/sh -c dotnet restore "/WebApp.csproj"' returned a non-zero code: 1
PS C:\Users\user\Desktop\Directory>
Run Code Online (Sandbox Code Playgroud)

但是,Dockerfile当我们使用Visual Studio构建它并开始运行而没有任何错误时,同样可以正常工作。

Docker文件如下所示:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["WebApp.csproj", ""]
RUN dotnet restore "/WebApp.csproj"
COPY . .
WORKDIR "/src/"
RUN dotnet build "WebApp.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "WebApp.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebApp.dll"]
Run Code Online (Sandbox Code Playgroud)

Sha*_*zyk 5

因为你dotnet restore/这样的MSBuild认为这是一个开关(像/p:)和失败,你只是需要将其删除:

RUN dotnet restore "WebApp.csproj"
Run Code Online (Sandbox Code Playgroud)