使用MSBuild 15和Microsoft.NET.Sdk构建项目允许用户指定六个版本属性。这些之间有什么区别,正确的使用方法是什么?
明确地说,我说的是“属性”,即文件中定义的MSBuild属性(如下所示)
<PropertyGroup>
<Version>1.2.0</Version>
</PropertyGroup>
...或在命令行上 msbuild.exe /p:Version=1.2.0
同样,显式设置这些值将覆盖默认值。
版本前缀
格式: major.minor.patch
示例: 14.2.4、0.1.0、99.99.99
含义:semver版本号的正常部分。这用于确定Version值的开始。
默认值: “ 1.0.0”
版本后缀
格式:[0-9A-Za-z-。] *(任意字符串)
示例:alpha,beta,build0123,rc4-build201701,rc.1,rc-1
含义:版本号的预发布标签。用于确定Version值的结尾。
默认值:(空)
版
格式: major.minor.patch [-prerelease]
示例:5.3.9-beta,0.0.1-alpha-01、0.0.1-alpha.1、2.0.0
含义:该属性是用户项目中最常用的属性。其他版本属性将默认使用此值。它还用于生成的值System.Reflection.AssemblyInformationalVersionAttribute
。preprelease值是可选的。
默认值: VersionPrefix(如果VersionSuffix为空)。如果VersionSuffix 不为空,则为VersionPrefix-VersionSuffix。
注意:显式设置Version将覆盖任何VersionPrefix或VersionSuffix设置。
此外,这通常遵循SemVer规则。有关详细信息,请参见http://semver.org/。
PackageVersion
格式: major.minor.patch [-prerelease]
含义:用于从MSBuild项目生成NuGet软件包时用于生成软件包版本。
默认值:匹配版本
AssemblyVersion
格式: major.minor.patch.revision
示例: 4.5.6.2、1.0.0.0
含义:用于生成的值System.Reflection.AssemblyVersionAttribute
。编译器使用它来确定最终的AssemblyVersion值,这是程序集标识的重要组成部分。参见https://msdn.microsoft.com/zh-cn/library/51ket42z(v=vs.110).aspx#Anchor_0
默认值:匹配版本没有抢鲜标签。
文件版本
格式 major.minor.patch.buildnumber
范例:1.0.0.43952、0.1.0.0
含义:用于生成的值System.Reflection.AssemblyFileVersionAttribute
。匹配AssemblyVersion不需要此。通常会在此版本中添加内部版本号。
默认值:匹配AssemblyVersion
信息版本
格式:任意
含义:用于生成的值System.Reflection.AssemblyInformationalVersionAttribute
。此属性可以包含任何其他版本信息。
默认值:匹配版本
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句