В настоящее время я пытаюсь перенести приложение ASP .NET Core 3.1 на .NET 5.0.
В своем приложении я использую некоторые сторонние пакеты NuGet, которые основаны на .NET Core 3.1 и не будут перенесены на .NET 5.
Хотя я пытаюсь выяснить, полностью ли переносимо мое приложение на .NET 5.
В моем приложении я сделал следующие шаги:
.csproj
<TargetFramework>net5.0</TargetFramework>
К сожалению, я не уверен, потому что в Solution Explorer => Project => Dependencies => Frameworks я вижу использование Microsoft.AspNetCore.App и Microsoft.NETCore.App.
Мой первый вопрос: проблематично ли использовать Microsoft.AspNetCore.App и Microsoft.NETCore.App в одном и том же приложении .NET 5? В чем разница между этими фреймворками?
Мой второй вопрос: могу ли я использовать пакеты .NET Core 3.1 NuGet в приложении .NET 5? Я не могу изменить эти сторонние пакеты NuGet. Вроде работает, но я думал, что это невозможно.
Как проверить, могу ли я полностью перенести свое приложение с .NET Core 3.1 на .NET 5?
Вот список критических изменений при переходе на .net 5
для Microsoft — (Learn.Microsoft.com/en-us/dotnet/core/compatibility/5.0)
Вся эта штука с фреймворками была введена, чтобы приложениям не приходилось ссылаться на миллионы пакетов NuGet (с разными версиями): это централизованно устанавливаемые коллекции библиотек. Это нормально и ожидается, что приложения ASP.NET Core используют как Microsoft.NETCore.App (на который будут ссылаться все (новые) приложения .NET Core), так и Microsoft.AspNetCore.App (который содержит библиотеки, специфичные для ASP.NET).
Также читайте learn.microsoft.com/en-us/aspnet/core/migration/…
Ты можешь. Просто обновите все зависимости вашего проекта через NuGet до последней стабильной версии, и это позволит вам обновить .Net Core 3.1 до .Net 5. Недавно я работал над двумя проектами. Один из них на сервере Dev работает нормально без каких-либо проблем.
На хостинг-сервере вам нужно установить .net 5 Hosting Bundle и перезапустить сервер... вот и все
Обратите внимание, что .NET 5 — это просто «.NET Core 4», но с дополнительным брендингом. Можно ссылаться на библиотеку, предназначенную для более ранней версии .NET Core, из приложения, предназначенного для более поздней версии.