如何在最新的.NET Core工具中进行版本自动增量?

时间:2017-02-11 19:15:06

标签: nuget .net-core versioning csproj

我正在使用最新的(截至今天).NET Core工具。在那里,您在< Version>中指定版本。 MSBuild属性。但是,与[assembly:AssemblyVersion]不同,这似乎不支持通配符。如何以相同的方式自动增加版本?

解释为什么这是一个坏主意,而应该做些什么也是一个很好的答案。

1 个答案:

答案 0 :(得分:1)

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

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

在档案中:

<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>属性。如果不是,则默认为major.minor.patch值<Version>

更多详情:

Microsoft.NET.Sdk中有半打“版本”设置。有关详细信息,请参阅What is the difference between various MSBuild version properties, such as Version, VersionPrefix, and VersionSuffix?