Клиентский Blazor, размещенный в Docker, не работает при связывании IL - PullRequest
0 голосов
/ 03 августа 2020

Я попытался создать изображение Docker из своего клиентского приложения Blazor. Приложение обслуживается проектом ASP. NET Core WebAPI.

Для этой цели я позволяю VS сгенерировать соответствующий Dockerfile.

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

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["Gtv.Blazor/Server/Gtv.Blazor.Server.csproj", "Gtv.Blazor/Server/"]
COPY ["Blazor/Shared/Gtv.Blazor.Shared.csproj", "Gtv.Blazor/Shared/"]
COPY ["Gtv.Blazor/Client/Gtv.Blazor.Client.csproj", "Gtv.Blazor/Client/"]
RUN dotnet restore "Gtv.Blazor/Server/Gtv.Blazor.Server.csproj"
COPY . .
WORKDIR "/src/Gtv.Blazor/Server"
RUN dotnet build "Gtv.Blazor.Server.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Gtv.Blazor.Server.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Gtv.Blazor.Server.dll"]

При сборке я получаю компоновщик IL ошибка:

Step 12/21 : RUN dotnet restore "Gtv.Blazor/Server/Gtv.Blazor.Server.csproj"
 ---> Using cache
 ---> 40fd2064543b
Step 13/21 : COPY . .
 ---> Using cache
 ---> 027a267a84ca
Step 14/21 : WORKDIR "/src/Gtv.Blazor/Server"
 ---> Using cache
 ---> 20349fa5c602
Step 15/21 : RUN dotnet build "Gtv.Blazor.Server.csproj" -c Release -o /app/build
 ---> Running in d1134f6e3d48
Microsoft (R) Build Engine version 16.4.0+e901037fe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 28.71 ms for /src/Gtv.Blazor/Client/Gtv.Blazor.Client.csproj.
  Restore completed in 28.69 ms for /src/Gtv.Blazor/Server/Gtv.Blazor.Server.csproj.
  Restore completed in 1.02 ms for /src/Gtv.Blazor/Shared/Gtv.Blazor.Shared.csproj.
  Gtv.Blazor.Shared -> /app/build/Gtv.Blazor.Shared.dll
  Fatal error in Mono IL Linker
/root/.nuget/packages/microsoft.aspnetcore.components.webassembly.build/3.2.1/targets/Blazor.MonoRuntime.targets(326,5): error : Unhandled exception. Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'obj/Release/netstandard2.1/Gtv.Blazor.Client.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' [/src/Gtv.Blazor/Client/Gtv.Blazor.Client.csproj]
   ---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'obj/Release/netstandard2.1/Gtv.Blazor.Client.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
     at Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
     at Mono.Linker.AssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
     at Mono.Linker.LinkContext.Resolve(IMetadataScope scope)
     at Mono.Linker.LinkContext.Resolve(IMetadataScope scope)
     at Mono.Linker.LinkContext.Resolve(String name)
     at Mono.Linker.Steps.ResolveFromAssemblyStep.Process()
     at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
     at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
     at Mono.Linker.Pipeline.Process(LinkContext context)
     at Mono.Linker.Driver.Run(ILogger customLogger)
     at Mono.Linker.Driver.Execute(String[] args, ILogger customLogger)
     at Mono.Linker.Driver.Main(String[] args)
/root/.nuget/packages/microsoft.aspnetcore.components.webassembly.build/3.2.1/targets/Blazor.MonoRuntime.targets(326,5): error : ILLink failed with exit code 134. [/src/Gtv.Blazor/Client/Gtv.Blazor.Client.csproj]

Build FAILED.

/root/.nuget/packages/microsoft.aspnetcore.components.webassembly.build/3.2.1/targets/Blazor.MonoRuntime.targets(326,5): error : Unhandled exception. Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'obj/Release/netstandard2.1/Gtv.Blazor.Client.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' [/src/Gtv.Blazor/Client/Gtv.Blazor.Client.csproj]
/root/.nuget/packages/microsoft.aspnetcore.components.webassembly.build/3.2.1/targets/Blazor.MonoRuntime.targets(326,5): error : ILLink failed with exit code 134. [/src/Gtv.Blazor/Client/Gtv.Blazor.Client.csproj]
    0 Warning(s)
    2 Error(s)
...