Ошибка при запуске в Docker. Указанная среда Microsoft.AspNetCore.App версии 2.1.6 не найдена.на - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь запустить проект с GenericHost в докере.Он работает, запуская консольное приложение локально на моей машине, и собирается правильно.Если я удаляю какой-то код и пакет Microsoft.AspNetCore.App, он работает хорошо, поэтому, похоже, проблема связана с этим пакетом при запуске его в Docker.

Сообщение об ошибке:

It was not possible to find any compatible framework version
The specified framework 'Microsoft.AspNetCore.App', version '2.1.6' was not 
found.
- Check application dependencies and target a framework version installed at:
  /usr/share/dotnet/
- Installing .NET Core prerequisites might help resolve this problem:
  https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
- The .NET Core framework and SDK can be installed from:
  https://aka.ms/dotnet-download
The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.
The program '[24] dotnet' has exited with code 150 (0x96).
The program 'dotnet' has exited with code 150 (0x96).

Ниже приведен мой DockerFile:

FROM microsoft/dotnet:2.1-runtime AS base
WORKDIR /app

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ../TestProj/TestProj.csproj ../TestProj/
RUN dotnet restore ../TestProj/TestProj.csproj
COPY . .
WORKDIR /src/../TestProj
RUN dotnet build TestProj.csproj -c Release -o /app

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

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

Исходный файл Docker содержит еще несколько «КОПИЙ» из-за необходимых ссылок, но отредактировал их здесь.

update Localмашина:

dotnet --info
.NET Core SDKs installed:
1.1.9 [C:\Program Files\dotnet\sdk]
1.1.11 [C:\Program Files\dotnet\sdk]
2.1.201 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.300 [C:\Program Files\dotnet\sdk]
2.1.402 [C:\Program Files\dotnet\sdk]
2.1.500 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.0 [C:\Program 
Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.4 [C:\Program 
Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.6 [C:\Program     Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.0_old [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.4_old [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 1.0.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.0.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.1.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.1.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

На моем локальном докере:

Host (useful for support):
Version: 2.1.6
Commit:  3f4f8eebd8

.NET Core SDKs installed:
No SDKs were found.

.NET Core runtimes installed:
Microsoft.NETCore.App 2.1.6 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download

1 Ответ

0 голосов
/ 04 декабря 2018

Видимо, возникла проблема, если проект был создан как консольное приложение и использовать nuget Microsoft.aspnetcore.app.Я заново создал проект, но в качестве веб-приложения, и тогда он заработал.Может быть, это очевидно, потому что это «web-nuget», но это не приходило мне в голову.

Я должен заметить, что у меня возникли некоторые проблемы с образом docker, и мне пришлось снова вытянуть изображение docker-dotnetс определенной версией.

docker pull microsoft/dotnet:2.1-aspnetcore-runtime

Не будет загружаться / начинаться с правильной версии dotnet.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...