Можно ли перенести мое приложение .NET Core 3.1 на .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.App и Microsoft.NETCore.App.

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

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

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

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

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

canton7 14.12.2020 15:38

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

Ryan Wilson 14.12.2020 15:41

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

canton7 14.12.2020 15:46

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

canton7 14.12.2020 15:48
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
4
3 197
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

На хостинг-сервере вам нужно установить .net 5 Hosting Bundle и перезапустить сервер... вот и все

Другие вопросы по теме