写点什么

使用一个文件集中管理你的 Nuget 依赖版本号

作者:newbe36524
  • 2023-02-24
    上海
  • 本文字数:1315 字

    阅读完需:约 4 分钟

使用一个文件集中管理你的 Nuget 依赖版本号

在 .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.CentralPackageVersions^1

总结

通过这个功能,你可以集中管理你的 Nuget 依赖版本号。这样你就可以统一查看,升级的时候只要该这一个地方,统一版本号,至少不会忘记升级某个项目。

参考


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


欢迎关注作者的微信公众号“newbe 技术专栏”,获取更多技术内容。


发布于: 刚刚阅读数: 4
用户头像

newbe36524

关注

开源项目作者,独立博客维护者 2020-06-02 加入

newbe36524 是一名开发工程师。newbe 是 newbe36524 的个人技术博客。秉承 now everyone will be excellent 的 slogan 希望为开发者们分享自己的开发经验和心路历程。

评论

发布
暂无评论
使用一个文件集中管理你的 Nuget 依赖版本号_C#_newbe36524_InfoQ写作社区