What is the difference between various MSBuild version properties, such as Version, VersionPrefix, and VersionSuffix?

后端 未结 1 1954
孤街浪徒
孤街浪徒 2021-01-30 13:49

Building projects with MSBuild 15 and Microsoft.NET.Sdk allows users to specify half a dozen version properties. What is the difference between each of these and what is the rig

相关标签:
1条回答
  • 2021-01-30 14:21

    Also, setting these values explicitly will override the defaults.

    VersionPrefix

    Format: major.minor.patch

    Examples: 14.2.4, 0.1.0, 99.99.99

    Meaning: The normal part of the semver version number. This is used to determine the beginning of the Version value.

    Default: "1.0.0"

    VersionSuffix

    Format: [0-9A-Za-z-.]* (arbitrary string)

    Examples: alpha, beta, build0123, rc4-build201701, rc.1, rc-1

    Meaning: The pre-release label of the version number. Used to determine the ending of a Version value.

    Default: (empty)

    Version

    Format: major.minor.patch[-prerelease]

    Examples: 5.3.9-beta, 0.0.1-alpha-01, 0.0.1-alpha.1, 2.0.0

    Meaning: This property is the most commonly used property in user projects. Other version properties look to this value as a default. It is also used to generate the value of System.Reflection.AssemblyInformationalVersionAttribute. The preprelease value is optional.

    Default: VersionPrefix if VersionSuffix is empty. VersionPrefix-VersionSuffix if VersionSuffix is not empty.

    Note: setting Version explicitly will override any VersionPrefix or VersionSuffix settings.

    Also, this typically follows SemVer rules. See http://semver.org/ for details

    PackageVersion

    Format: major.minor.patch[-prerelease]

    Meaning: Used to generate the package version when producing a NuGet package from an MSBuild project.

    Default: matches Version

    AssemblyVersion

    Format: major.minor.patch.revision

    Examples: 4.5.6.2, 1.0.0.0

    Meaning: Used to generate the value of System.Reflection.AssemblyVersionAttribute. The compiler uses this to determine the final AssemblyVersion value, an essential part of assembly identity. See https://msdn.microsoft.com/en-us/library/51ket42z(v=vs.110).aspx#Anchor_0

    Default: matches Version without the prerelease label.

    FileVersion

    Format major.minor.patch.buildnumber

    Examples: 1.0.0.43952, 0.1.0.0

    Meaning: Used to generate the value of System.Reflection.AssemblyFileVersionAttribute. This is not required to match AssemblyVersion. It is common to add a build number to this version.

    Default: matches AssemblyVersion

    InformationalVersion

    Format: any

    Meaning: Used to generate the value of System.Reflection.AssemblyInformationalVersionAttribute. This attribute can contain any additional version information.

    Default: matches Version

    0 讨论(0)
提交回复
热议问题