各种MSBuild版本属性(例如Version,VersionPrefix和VersionSuffix)之间有什么区别?

natemcmaster:

使用MSBuild 15和Microsoft.NET.Sdk构建项目允许用户指定六个版本属性。这些之间有什么区别,正确的使用方法是什么?

  • 版本前缀
  • 版本后缀
  • AssemblyVersion
  • 文件版本
  • PackageVersion

明确地说,我说的是“属性”,即文件中定义的MSBuild属性(如下所示)

<PropertyGroup>
   <Version>1.2.0</Version>
</PropertyGroup>

...或在命令行上 msbuild.exe /p:Version=1.2.0

natemcmaster:

同样,显式设置这些值将覆盖默认值。

版本前缀

格式: 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.AssemblyInformationalVersionAttributepreprelease值是可选的。

默认值: VersionPrefix(如果VersionSuffix为空)。如果VersionSuffix 不为空,则为VersionPrefix-VersionSuffix

注意:显式设置Version将覆盖任何VersionPrefixVersionSuffix设置。

此外,这通常遵循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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Boundless和Osgeo版本之间有什么区别?

.NET Framework和CLR版本之间有什么区别

debug和AppStore iOS版本之间有什么区别

RTM,GA和GOLD版本之间有什么区别?

title属性和tooltip属性之间有什么区别?

XML属性和XML标记之间有什么区别?

属性和列之间有什么区别?

字段和属性之间有什么区别?

HTML和CSS的width属性之间有什么区别?

类和实例属性之间有什么区别?

哈希表和属性之间有什么区别?

[Computed]和[Write(false)]属性之间有什么区别?

元名称和元属性之间有什么区别?

样式和android:theme属性之间有什么区别?

IBOutlet和IBOutlet属性之间有什么区别?

private setter和readonly属性之间有什么区别?

Iceweasel版本之间有什么区别?

各种`libc.so`之间有什么区别和关系?

各种$ TERM变量之间有什么区别?

各种VM软件之间有什么区别?

Java CPU和PSU版本之间有什么区别,例如JDK SE 8u101和JDK SE 8u102

exec系列系统调用(例如exec和execve)的功能之间有什么区别?

服务器版本和桌面版本之间有什么区别?

长期支持版本和普通版本之间有什么区别?

“与工作区版本比较”和“与最新版本比较”之间有什么区别?

Homebrew安装的ruby版本和ruby -v显示的版本之间有什么区别?

$(“”)和$ .find(“”)之间有什么区别?

〜和/在路径之间有什么区别

“ .equals”和“ ==”之间有什么区别?