当前位置: 欣欣网 > 码农

.NET 9 使用新的 Directory.Packages.props 模板

2024-02-29码农

.NET 9 使用新的 Directory.Packages.props 模板

Intro

之前写过一篇使用中心化的包版本管理特性,没看过的朋友可以移步

但是使用起来需要自己手动创建/编辑 Directory.Packages.props 文件,有些麻烦,于是想创建一个 Directory.Packages.props 的模板,于是提了一个 issue,后面又尝试提了一个 PR,最近发现之前贡献的 Directory.Packages.props 模板已经可以在 .NET 9 Preview 1 使用了~

在一个新项目想要使用中心化包版本管理时,可以使用这个模板来创建 Directory.Packages.props 来启用中心化的包版本管理功能

How to use

新的模板名称目前是 packagesprops 类似于 buildprops

dotnet new list 可以查看本地的模板列表

执行 dotnet new packagesprops -h 可以看到使用的一些参数

有一个 --inherit 的参数,但是就我看到过的项目而言,没有需要用到这个参数的,主要是类似于 Directory.Build.props 一样,可以继承上一级的定义

使用示例如下:

新建一个控制台测试应用,之后在项目根目录通过 dotnet new packagesprops 来创建 Directory.Packages.props

然后我们添加一个 nuget package 的引用来测试一下,执行 dotnet add package WeihanLi.Common 来添加一个包引用

add package output

从输出结果中我们可以看到有 central package management 的字样,我们再来看下这个文件和项目文件来验证一下

packages.props and project file

从上面的输出结果可以看出是符合预期的,项目文件中只包含包引用,不包含版本信息,版本定义在了 Directory.Packages.props 文件中

More

如果你也打算为新项目开启中心化的版本管理,不妨来试试吧

References

  • https://github.com/dotnet/sdk/issues/36367

  • https://github.com/dotnet/sdk/pull/36387