TGViewer
.NET epeshk blog .NET epeshk blog @epeshkblog · 2.67K subscribers
Post #183 3.06K
Central Package Management

CPM — фича nuget, позволяющая задавать версии пакетов не для каждого проекта отдельно, а один раз в solution, в Directory.Packages.props

<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
</Project>


После этого, в файлах проектов можно не указывать версию:
<PackageReference Include="Newtonsoft.Json" />


По необходимости, в файле проекта по прежнему можно указать другую версию:
<PackageReference Include="Newtonsoft.Json" VersionOverride="13.0.2" />


CentralPackageTransitivePinningEnabled — обновляет транзитивные зависимости до версий, указанных в Directory.Packages.props

GlobalPackageReference — подключает пакет во все проекты, которые импортируют Directory.Packages.props

====

На первый взгляд выглядит хорошо, но попробовал перейти на CPM в нынешнем проекте, и пока решил оставить как было.

Из-за legacy-проектов пришлось указывать слишком много VersionOverride — без них солюшен даже не собирался. Риск обновить в них пакеты разом и словить в рантайме на проде баги и просадки производительности тоже выглядит большим.
Но для новых проектов, must have, учитывая, что поддержка в IDE сейчас уже стала гораздо лучше

А вы уже используете Central Package Management?

UPD: автоматический конвертер PackageReference

@epeshkblog | Поддержать канал
Docs Central Package Management Manage your dependencies in a central location and learn how to get started with Central Package Management.
  • 🔥 30
  • 👍 19
More from @epeshkblog
  1. Sep 23, 2026На какие доклады я пойду на DotNext 2026. Обзор программы В этом году конференция почти на…
  2. Sep 22, 2026Приходите на доклад https://dotnext.ru/talks/20010542-modularity-without-microservices-in-…
  3. Sep 22, 2026В этом году не выступаю, надо отдохнуть, и переосмыслить разработку после всеобщего успеха…
  4. Sep 22, 2026#видеозаписи До нового DotNext осталось совсем немного, а по дороге на конференцию — можно…
  5. Sep 9, 2026.NET и Владимир: отличный повод совместить митап и выходные в городе с историей Офлайн-мер…
  6. Aug 3, 2026LLM оказались упорнее людей 2 недели назад LLM впервые справилась с математической задачей…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →