在 .net 7 以前,我的项目对于 nuget 依赖项的版本依赖散落与解决方案的各个角落。这导致降级保护和查看的时候都比拟麻烦。在 .net 7 中,你能够应用一个文件来集中管理你的 Nuget 依赖版本号。本篇文章将介绍如何应用这个性能。

为什么须要这个性能

通过单文件管制 Nuget 依赖版本号。那么你就能够:

  1. 对立查看
  2. 降级的时候只有该这一个中央
  3. 对立版本号,至多不会遗记降级某个我的项目

怎么操作呢

批改 Directory.Build.props

在你的我的项目根目录下创立一个 Directory.Build.props 文件,而后增加以下内容:

<Project>    <PropertyGroup>        <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>    </PropertyGroup></Project>

这样就启用了这个性能。

创立一个 Directory.Packages.props 文件

在你的我的项目根目录下创立一个 Directory.Packages.props 文件,而后增加以下内容:

<Project>    <ItemGroup>        <PackageVersion Include="xunit" Version="2.4.2"/>        <PackageVersion Include="xunit.runner.visualstudio" Version="2.4.5">            <PrivateAssets>all</PrivateAssets>            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>        </PackageVersion>        <PackageVersion Include="coverlet.collector" Version="3.2.0">            <PrivateAssets>all</PrivateAssets>            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>        </PackageVersion>    </ItemGroup></Project>

这个文件就是你的 Nuget 依赖版本号的集中管理文件。其中的写法除了 PackageVersion 元素外,其余的都是 Nuget 的写法。你能够在这个文件中增加你的 Nuget 依赖版本号。

再次留神,这里是 PackageVersion 而不是 PackageReference

批改你的我的项目文件

在你的我的项目文件中,你能够通过以下形式来援用 Nuget 依赖:

<Project>    <ItemGroup>        <PackageReference Include="xunit" />        <PackageReference Include="unit.runner.visualstudio" />    </ItemGroup></Project>

该文件和以前的写法是一样的。然而你不须要再指定版本号了。

这样你就能够通过 Directory.Packages.props 来集中管理你的 Nuget 依赖版本号了。

如果我是 .net 7 以前的版本那怎么办

实际上在 .net 7 之前,你也能够通过因为额定的 Sdk 来实现这个性能。

Microsoft.Build.CentralPackageVersions1

总结

通过这个性能,你能够集中管理你的 Nuget 依赖版本号。这样你就能够对立查看,降级的时候只有该这一个中央,对立版本号,至多不会遗记降级某个我的项目。

参考

  • Central Package Management (CPM)2
  • Directory.Build.props3

感谢您的浏览,如果您感觉本文有用,快点击下方点赞按钮,让更多的人看到本文。

欢送关注作者的微信公众号“newbe技术专栏”,获取更多技术内容。
  • 本文作者: newbe36524
  • 本文链接: https://www.newbe.pro/Others/0x025-Use-one-file-to-centrally-manage-your-Nuget-dependency-version-numbers/
  • 版权申明: 本博客所有文章除特地申明外,均采纳 BY-NC-SA 许可协定。转载请注明出处!

  1. https://github.com/microsoft/... ↩
  2. https://learn.microsoft.com/n... ↩
  3. https://learn.microsoft.com/v... ↩