我正在使用最新的(截至今日).NET Core工具。在那里,您指定版本<版本> MSBuild属性。但是,与[assembly:AssemblyVersion]不同,这似乎不支持通配符。如何以同样的方式自动进行版本增量?如何在最新的.NET Core工具中进行版本自动增量?
解释为什么这是一个坏主意,而应该做什么,而不是一个好的答案。
我正在使用最新的(截至今日).NET Core工具。在那里,您指定版本<版本> MSBuild属性。但是,与[assembly:AssemblyVersion]不同,这似乎不支持通配符。如何以同样的方式自动进行版本增量?如何在最新的.NET Core工具中进行版本自动增量?
解释为什么这是一个坏主意,而应该做什么,而不是一个好的答案。
MSBuild中的版本属性不支持像project.json那样的星号(通配符)格式。
但是,使用MSBuild,您可以用其他方式计算版本。没有一个正确的方法来做到这一点,但这是一种方法。我们使用“VersionPrefix”代替。 Microsoft.NET.Sdk也会自动结合VersionPrefix和VersionSuffix来形成“版本”的最终值。
在文件:
<PropertyGroup>
<VersionPrefix>2.0.0</VersionPrefix>
</PropertyGroup>
在构建服务器:
msbuild.exe /t:Pack /p:VersionSuffix=build0
// or, the dotnet.exe equivalent
dotnet pack --version-suffix build0
结果:
AssemblyVersion = 2.0.0.0
Package version = 2.0.0-build0
我们构建服务器上生成每次运行的内部版本号。
如果你想使用老式的AssemblyVersion星号形式,你可以在MSBuild中明确地设置<AssemblyVersion>
属性。如果不是,则默认为<Version>
的major.minor.patch值。
更多细节:
有在Microsoft.NET.Sdk半一打 “版本” 的设置。有关更多详细信息,请参阅What is the difference between various MSBuild version properties, such as Version, VersionPrefix, and VersionSuffix?。