gpt4 book ai didi

.NET 相当于 Maven Parent Pom/依赖管理

转载 作者:行者123 更新时间:2023-12-04 10:05:46 26 4
gpt4 key购买 nike

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

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

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

有没有更标准的方法呢?

最佳答案

Directory.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如果你想在所有项目中标准化它。

关于.NET 相当于 Maven Parent Pom/依赖管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61599202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com