【问题标题】:Docker fails to build in Azure Pipelines with "error MSB1001"Docker 无法在 Azure Pipelines 中构建并出现“错误 MSB1001”
【发布时间】:2019-05-29 07:31:53
【问题描述】:

我面临着奇怪的问题。当我在 Windows 机器(笔记本电脑)上构建我的 Dockerfile 时遇到错误,当我尝试在 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>

但是当我们使用 visual studio 构建它时,同样的 Dockerfile 工作正常,它构建并开始运行,没有任何错误。

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"]

【问题讨论】:

  • 你是什么意思“在windows机器上”(使用visual studio不在windows上?)?
  • 我的意思是在我的电脑上。
  • 在 Azure-Pipelines 上失败了?
  • 是的,在本地也是同样的错误。但是当我从 Visual Studio 运行它时,它会构建并运行应用程序
  • dotent restore尝试删除/(仅限"WebApp,csproj"

标签: asp.net docker azure-devops dockerfile azure-pipelines


【解决方案1】:

因为在你的dotnet restore 中有/ 所以MSBuild 认为它是一个开关(如/p:)并且失败了,你只需要删除它:

RUN dotnet restore "WebApp.csproj"

【讨论】:

    猜你喜欢
    • 2019-09-05
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 2019-09-25
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多