Estoy enfrentando un problema extraño. Cuando construyo mi Dockerfile en una máquina con Windows (computadora portátil), obtengo el siguiente error y también obtengo el mismo error cuando intenté implementar en 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> Pero el mismo Dockerfile funciona bien cuando lo construimos usando Visual Studio , lo construye y comienza a ejecutarse sin ningún error.
El archivo Docker se parece a:
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"]Debido a que en su dotnet restore hay / entonces MSBuild cree que es un interruptor (como /p: :) y falla, solo necesita eliminarlo:
RUN dotnet restore "WebApp.csproj"