Переносится ли мое приложение .NET Core 3.1 на .NET 5?

#c# #asp.net #asp.net-core #nuget #.net-5

#c# #asp.net #asp.net-core #nuget #.net-5

Вопрос:

В настоящее время я пытаюсь перенести приложение ASP .NET Core 3.1 на .NET 5.0.

В своем приложении я использую некоторые сторонние пакеты NuGet, которые полагаются на .NET Core 3.1 и не будут перенесены на .NET 5.

Хотя я пытаюсь выяснить, полностью ли мое приложение переносимо на .NET 5.

В моем приложении я выполнил следующие шаги:

  • Я обновил целевую структуру в .csproj файле
 <TargetFramework>net5.0</TargetFramework>
 
  • Затем я обновил все пакеты NuGet — кажется, он работает нормально, без ошибок.

К сожалению, я не уверен, потому что в Solution Explorer => Project => Dependencies => Frameworks я вижу использование Microsoft.AspNetCore.Приложение и Microsoft.NETCore.App.

введите описание изображения здесь

Мой первый вопрос: проблема в использовании Microsoft.AspNetCore.Приложение и Microsoft.NETCore.Приложение в том же приложении .NET 5? В чем разница между этими фреймворками?

  • На следующем шаге я запускаю .Анализатор переносимости сети с целевой платформой .NET 5.0 — в отчете говорится, что переносимость составляет около 97%, но зависимые NuGets в .NET Core 3.1 не могут быть изменены.

Мой второй вопрос: могу ли я использовать.Пакеты NET Core 3.1 NuGet в приложении .NET 5? Я не могу изменить эти сторонние пакеты NuGet. Кажется, это работает, но я думал, что это невозможно.

Как я могу проверить, могу ли я полностью перенести свое приложение с .NET Core 3.1 на .NET 5?

Комментарии:

1. Обратите внимание, что .NET 5 — это в основном просто «.NET Core 4», но с дополнительным брендингом. Можно ссылаться на библиотеку, предназначенную для более ранней версии .NET Core, из приложения, предназначенного для более поздней версии

2. Вот список критических изменений при переходе на .net 5 , согласно microsoft — ( docs.microsoft.com/en-us/dotnet/core/compatibility/5.0 )

3. Все эти фреймворки были введены, чтобы избежать того, чтобы приложениям приходилось ссылаться на миллиарды пакетов NuGet (с разными версиями): они представляют собой централизованно установленные коллекции библиотек. Это нормально и ожидаемо, что ASP.NET Основные приложения используют как Microsoft.NETCore.App (на который будут ссылаться все (новые) приложения .NET Core), так и Microsoft. AspNetCore.App (который содержит библиотеки, специфичные для ASP.NET)

4. Также читайте docs.microsoft.com/en-us/aspnet/core/migration /…

Ответ №1:

Вы можете. Просто обновите все зависимости вашего проекта через NuGet до последней стабильной версии, и это позволит вам обновить ваш .Net Core 3.1 до .Net 5. Недавно я работал над двумя проектами. Один из них находится на сервере разработчиков и работает нормально, без каких-либо проблем.

На хостинговом сервере вам необходимо установить пакет хостинга .net 5 и перезапустить сервер… вот и все