Могу ли я обновиться до пакетов NuGet .Net 5, даже если я использую .Net Core 3.1?

Я искал обновления NuGet о моих библиотеках проектов. Я вижу, что существует множество обновлений библиотек Microsoft до версии 5.0.0.

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

Исходя из моих знаний, я думаю, что это новые зависимости, выпущенные с .Net 5.0, и я не уверен, что смогу обновить эти библиотеки до последней версии с помощью проекта .Net Core 3.1.

Могу ли я обновить библиотеки до версии 5.0.0, даже если я использую / создаю проект .Net Core 3.1?


person E.Benedos    schedule 11.11.2020    source источник
comment
Если у вас уже есть система контроля версий (например, Git), эксперимент вам все расскажет.   -  person Lex Li    schedule 11.11.2020
comment
Но это не гарантирует мне, что это 100% доказательство производства. Документация Microsoft ничего не объясняет по этому поводу.   -  person E.Benedos    schedule 11.11.2020
comment
Ничего такого? docs. microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/ EF Core 5 официально поддерживает .NET Core 3.1 (хотя Microsoft должна обновить эту страницу, чтобы сделать ее более понятной).   -  person Lex Li    schedule 11.11.2020
comment
Спасибо, @Lez Li, мне не удалось найти эту страницу, и я согласен с вами, это может быть более понятным. Во всяком случае, это частично ответ на мой вопрос, который касается не только EF Core. А как насчет других системных библиотек? Я думаю, что Microsoft может быть более ясной по этой теме, потому что, на мой взгляд, это так же важно для разработчиков, которым необходимо обновлять только пакеты после выпуска .net 5.   -  person E.Benedos    schedule 12.11.2020
comment
Только для пакетов Microsoft, если что-то относится только к .NET 5, они должны быть нацелены только на net5 вместо netstandard2.1 (который может использовать .NET Core 3.1). Хотя от Microsoft требуются дополнительные разъяснения, я думаю, что у нас уже есть некоторые подсказки.   -  person Lex Li    schedule 12.11.2020
comment
У меня есть несколько проектов Net 4.8, в которых используются те же общие библиотеки, что и для Net Core. Итак, эти общие библиотеки предназначены для netstandard2.0. и сейчас не могу их поменять на Net5. Но они работают нормально с обоими.   -  person Serge    schedule 12.11.2020
comment
Я хотел бы думать, что вы можете обращаться с этими обновлениями так же, как с любым другим обновлением пакета NuGet. Однако будьте осторожны, поскольку семантическое управление версиями говорит, что изменение основного номера версии может привести к критическим изменениям. Например, если такой пакет зависит только от стандарта .net 2.0, то вполне разумно использовать его в net48. Если обновление пакета действительно прерывается таким образом, что вы больше не можете использовать его в net48, тогда пакет должен был отказаться от поддержки стандарта net 2.0.   -  person AroglDarthu    schedule 13.11.2020
comment
Я не понимаю, почему нет официального заявления или руководства от Microsoft по этой теме ... Может быть, также нужно различать пакеты, действующие как Framework (проблематично) или как библиотека (вероятно, можно обновить их и, по крайней мере, попытайся)?   -  person timmkrause    schedule 02.06.2021


Ответы (3)


К сожалению, вы не можете обновить многие из этих новейших пакетов Nuget до 5.0. Причина в том, что новейшие версии пакетов Nuget написаны в первую очередь для .NET 5, и часто диспетчер пакетов Nuget даже не позволяет вам их установить, поскольку в API есть различия. С учетом сказанного, может быть несколько мест, где он позволит установить, но я бы не рекомендовал его, если вы планируете оставить приложение на .NET Core 3.1. Скорее всего, это могло вызвать некоторые несоответствия, которые было бы трудно отладить. Действуйте осторожно или обновите свои проекты до .NET 5.

person COleson    schedule 11.11.2020
comment
К сожалению, пакеты, предназначенные для .NET Standard 2.1, могут использоваться проектами .NET Core 3.1, и Microsoft не будет их блокировать. Официальными словами вроде docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-5.0/ также ясно, что .NET Core 3.1 может использовать некоторые новые пакеты (если не все ). Я согласен, что рекомендуется соблюдать осторожность, но явно написанное для .NET 5 неверно. - person Lex Li; 12.11.2020
comment
Внес изменения в комментарий. Они написаны в основном для .NET 5, а другие целевые фреймворки отошли на второй план. Надеюсь, это лучше сказано. - person COleson; 12.11.2020

Я только что закончил то же самое. У меня было основное приложение 3.1 с множеством проектов библиотек 3.1 и NET Standard2.0, и я только что обновил все эти библиотеки до версии 5. Все библиотеки работали нормально, я мог их скомпилировать. Но я не смог скомпилировать свое основное веб-приложение. Он начал выдавать какие-то странные ошибки, которые нужны некоторым сотрудникам .net5. Возможно, это можно исправить, но я не видел особого смысла тратить свое время, так как в любом случае я планировал перейти на net5 через пару дней. Поэтому я просто решил немедленно перейти на net5. Я установил net 5.0 SDK и изменил целевую структуру моего приложения на net5.0. Теперь все работает нормально, и я доволен своим приложением net5.0. У меня есть несколько проектов Net 4.8, в которых используются те же общие библиотеки, что и для Net Core. Итак, эти общие библиотеки предназначены для netstandard2.0. и не могу их поменять на Net5. Теперь все эти проекты Standard2.0 по-прежнему без проблем работают с моим веб-приложением net5.0. Поскольку у меня не было никаких проблем с моей предыдущей версией 3.1.9, Я НЕ РЕКОМЕНДУЮ обновлять библиотеки до 5.0, если ВЫ НЕ ПЛАНИРУЕТЕ переносить свое приложение на Net5.0. После этого у вас может появиться больше проблем, чем вы можете получить от этого обновления.

person Serge    schedule 11.11.2020
comment
Но я не смог скомпилировать свое основное веб-приложение. Он начал выдавать какие-то странные ошибки, которые нужны некоторым сотрудникам .net5. Это требует дальнейшего изучения и может быть вызвано чем-то другим. - person Lex Li; 12.11.2020
comment
Он работал нормально, прежде чем я его обновил. Вы правы, возможно, это можно исправить, но я не видел особого смысла тратить свое время, так как планировал перейти на net5 через пару дней. Я сразу переехал. А так как у меня с предыдущей версией 3.1.9 проблем не было. Так что я не вижу особого смысла переносить библиотеки на 5.0 и тратить много времени на то, чтобы исправить это, если я ничего от этого не выиграю. - person Serge; 12.11.2020

Вы должны сообщать о таких (VS для Mac и VS для Windows) как о дефектах продукта в Microsoft, поскольку многие из новых пакетов 5.0 нацелены исключительно на net5 и не применимы к netcoreapp3.1.

Попробуйте использовать outdated инструмент для проверки обновлений пакетов, который намного надежнее,

https://github.com/dotnet-outdated/dotnet-outdated

person Lex Li    schedule 20.11.2020