如何在最新的.NET Core工具中实现版本号自动递增?

5
我正在使用最新的(截至今天).NET Core工具。在那里,您需要在<Version> MSBuild属性中指定版本。然而,与[assembly:AssemblyVersion]不同的是,它似乎不支持通配符。我如何使版本号以相同的方式自动递增?
解释为什么这样做不好,并说明应该采取哪些措施也是一个好答案。
1个回答

1

MSBuild中的Version属性不支持像project.json一样的星号(通配符)格式。

但是,使用MSBuild可以通过其他方式计算版本。没有一种正确的方法,但这里有一种方法。我们使用“VersionPrefix”代替。Microsoft.NET.Sdk还会自动组合VersionPrefix和VersionSuffix以形成“Version”的最终值。

在文件中:

<PropertyGroup>
  <VersionPrefix>2.0.0</VersionPrefix>
</PropertyGroup>

在构建服务器上:
msbuild.exe /t:Pack /p:VersionSuffix=build00123 

// or, the dotnet.exe equivalent
dotnet pack --version-suffix build00123

结果:

AssemblyVersion = 2.0.0.0
Package version = 2.0.0-build00123

我们的构建服务器在每次运行时生成构建号。
如果您想使用老派的 AssemblyVersion 星号形式,您可以在 MSBuild 中显式设置 <AssemblyVersion> 属性。如果没有设置,则默认为 <Version> 的主版本号.次版本号.修订版本号。
更多细节:
Microsoft.NET.Sdk 中有半打“版本”设置。有关更多详细信息,请参见 各种 MSBuild 版本属性(例如 Version、VersionPrefix 和 VersionSuffix)之间的区别是什么?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接