После переноса веб-приложения .NET Core 2.2 на новый компьютер с Windows 10 происходит сбой.

После перемещения приложения я получаю эту ошибку. Я загрузил и установил SDK 3.1.302 и среду выполнения 3.1.6, но получаю такую ​​ошибку:

Ошибка HTTP 500.31 - ANCM не удалось найти собственные зависимости

Общие решения этой проблемы: указанная версия Microsoft.NetCore.App или Microsoft.AspNetCore.App не найдена. Специфическая ошибка, обнаруженная ANCM: не удалось найти совместимую версию фреймворка Фреймворк Microsoft.AspNetCore.App, версия '2.2.0' не найден. - Были обнаружены следующие фреймворки: 2.1.20 в [C: \ Program Files \ dotnet \ shared \ Microsoft.AspNetCore.App] 3.1.6 в [C: \ Program Files \ dotnet \ shared \ Microsoft.AspNetCore.App] Вы может решить проблему, установив указанный фреймворк и / или SDK. Указанную платформу можно найти по адресу: - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=2.2.0&arch=x64&rid=win10-x64

На странице загрузки ядра .net SDK указано, что версия 2.2 больше не поддерживается, поэтому я загрузил ее. 3.1.302 как рекомендовано. Однако я думаю, что мне нужно найти где-нибудь в моем VS 2019 для этого решения и изменить его на среду выполнения 3.1.6 с 2.2, но я понятия не имею, где это будет.

Я поискал в Интернете решение, но не нашел. Я нашел упоминание об удалении этой переменной окружения, но это не сработало.

 <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />

Где мое приложение ссылается на .net core 2.2? Он так хорошо работал в Windows 7 Visual Studio 2017, что я перенес его.


person JustJohn    schedule 27.07.2020    source источник


Ответы (2)


В конфигурации файла проекта csproj у вас есть что-то вроде
<RuntimeFrameworkVersion>2.2</RuntimeFrameworkVersion>
или <TargetFramework>netcoreapp2.2</TargetFramework>
или <PackageReference Include="Microsoft.AspNetCore.All" Version="2.2" />?

И 2.2 больше не поддерживается, вам нужно вернуться к 2.1 или 3.x. Предлагаю вам обновить проект до последней версии, если это возможно.

или вы все еще можете скачать SDK 2.2 из архива.

https://dotnet.microsoft.com/download/dotnet-core

person daremachine    schedule 27.07.2020

При установке .Net Core 3.1 старые среды выполнения по умолчанию не устанавливаются. Вам нужно будет установить 2.2 или, когда вы опубликуете свою программу, опубликуйте ее как автономную, которая должна включать все необходимое для ее запуска.

Несмотря на то, что версия 2.2 имеет EOLed, вы все равно можете запускать свою программу .net core 2.2. Вы можете загрузить последнюю версию 2.2 здесь: https://dotnet.microsoft.com/download/dotnet-core/2.2

Скорее всего, вам понадобится Windows Hosting Bundle.

Установите его, и как только он будет завершен, вы сможете проверить свою версию среды выполнения из PowerShell с помощью dotnet --list-runtimes

Вы должны увидеть список установленных сред выполнения. Вы захотите увидеть что-то вроде: Microsoft.NETCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

После этого вы сможете запустить приложение.

При этом я бы также рекомендовал как можно скорее обновить до 3.1.

person Cryolithic    schedule 28.07.2020