Как можно успешно компилировать проект / решение Visual Studio .Net 5, который ссылается на пакет NuGet .Net Core 3.1?

Ближе к делу:

Как мое решение / проект Visual Studio, написанное на .Net 5, успешно компилируется и запускается, когда он ссылается на пакет NuGet .Net Core 3.1?

Подробнее

У меня было решение Visual Studio с несколькими проектами. Все написано на .Net Core 3.1 с целевой структурой netcoreapp3.1. См. ниже.

<TargetFramework>netcoreapp3.1</TargetFramework>

Я обновил весь проект до .Net 5 с целевой структурой net5.0 См. Ниже.

 <TargetFramework>net5.0</TargetFramework>

Мне пришлось обновить их все, даже те, в которых есть только классы POCO. В противном случае решение не будет компилироваться, что для меня имеет смысл.

Мое решение ссылается на 2 пакета NuGet. Написано другим разработчиком из моей компании. Кого больше нет с нами.

Один из пакетов написан на .Net Standard. Я полностью понимаю, почему у меня нет проблем с этим пакетом. Он использует указанную ниже целевую структуру.

<TargetFramework>netstandard2.1</TargetFramework>

Однако другой пакет использует целевую платформу netcoreapp3.1. (У меня есть доступ к исходному коду.)

Мое решение соответствует требованиям и отлично работает локально. Я не понимаю, как это возможно.

Почему мне пришлось обновить весь мой проект в моих решениях до .Net 5. Но пакет не нужно было обновлять. Я был готов обновить его.

Было ли это упаковано по-особенному?

Любой внутренний был бы полезен.

Я просто пытаюсь это понять.


person Richard    schedule 08.01.2021    source источник
comment
Почему это невозможно? .NET 5 - это, по сути, .NET Core 4, за исключением того, что они назвали его .NET 5 (по крайней мере, насколько мне известно), поэтому я не могу думать о том, почему более старый пакет не может быть включен.   -  person Llama    schedule 08.01.2021
comment
Итак, почему я обновил все свои проекты в рамках решения? Это просто местные посылки, верно?   -  person Richard    schedule 08.01.2021
comment
Возможно, это не ваша точная настройка, но я только что создал библиотеку классов .NET 5 и включил консольное приложение .NET Core 3.1, и все это скомпилировалось нормально.   -  person Llama    schedule 08.01.2021
comment
Хорошо, спасибо за понимание. В общем, вы ответили на мой вопрос.   -  person Richard    schedule 08.01.2021
comment
@ Ричард, есть новости по этой проблеме? Пожалуйста, проверьте, помогает ли мой ответ вам справиться с проблемой или нет. Если это поможет, не забудьте принять его. А если нет, дайте нам знать, и мы будем рады вам помочь.   -  person Mr Qian    schedule 13.01.2021
comment
@ Ричард, есть новости по этой проблеме? Пожалуйста, проверьте, помогает ли мой ответ вам справиться с проблемой или нет. Если это поможет, не забудьте принять его. И если нет, дайте нам знать, и мы готовы помочь вам в дальнейшем.   -  person Mr Qian    schedule 19.01.2021


Ответы (1)


Обратите внимание, что NET5.0 - это новый выпуск Net Core Sdk, а не традиционный Net Framework. См. аналогичная проблема и этот официальный документ .

Это обновление вашего проекта с Net Core 3.1 до Net5.0 является обновлением версии SDK того же типа.

И более высокая версия Net Core sdk совместима с более низкой версией sdk. Так что вам не нужно беспокоиться об обновлении пакетов nuget для Net Core 3.1.

person Mr Qian    schedule 11.01.2021