.NET equivalent of Maven Parent Pom / Dependency Management



中是否有与这些Maven功能等效的功能。NET?例如,我有这个:

A.sln
Proj1.csproj
<PackageReference="Something" Version="1.2.3"/>
Proj2.csproj
<PackageReference="Something" Version="1.2.3"/>

我想要一种一致的方式来确保他们对Something使用相同的版本。我尝试过使用Version.props并在每个.csproj中导入它,但它不如父pom中的Maven BOM/dependencyManagment部分那么优雅或漂亮。

有没有更标准的方法?

目录。Build.targets就是你想要的。它允许您以一种向下流到所有项目的方式设置解决方案范围的包版本(以及其他任何内容(。

在你的例子中,你会有:

A.sln
Directory.Build.targets
Proj1.csproj
<PackageReference Include="Something" />
Proj2.csproj
<PackageReference Include="Something" />

其中Directory.Build.targets包含:

<Project>
<ItemGroup>
<PackageReference Update="Something" Version="1.2.3" />
</ItemGroup>
</Project>

请注意使用了Update="Something"(而不是Include(,并且每个项目的PackageReferences中缺少指定版本。

这种方法对于在许多项目中设置包版本非常有用,但它可以做得更多。我还使用它在每个项目中包含相同的代码分析规则,并在一个地方为所有项目设置C#语言版本。如果您想在所有项目中标准化每个项目.csproj文件中的任何内容,都可以将其移动到Directory.Build.targets

相关内容

最新更新