1313 <Target Name =" Version" DependsOnTargets =" SetVersions" >
1414 <Message Importance =" high" Text =" PackageVersion=$(PackageVersion)
1515AssemblyVersion=$(AssemblyVersion)" />
16- <Message Condition =" $(CI)" Importance =" high" Text =" ##vso[build.updatebuildnumber]$(Version )" />
16+ <Message Condition =" $(CI)" Importance =" high" Text =" ##vso[build.updatebuildnumber]$(BuildVersion )" />
1717 </Target >
1818
1919 <Target Name =" SetVersions"
@@ -25,23 +25,36 @@ AssemblyVersion=$(AssemblyVersion)" />
2525 <PropertyGroup >
2626 <GitBranch Condition =" '$(SYSTEM_PULLREQUEST_TARGETBRANCH)' != ''" >$(SYSTEM_PULLREQUEST_TARGETBRANCH)</GitBranch >
2727 <GitBranch Condition =" '$(SYSTEM_PULLREQUEST_TARGETBRANCH)' == '' and '$(BUILD_SOURCEBRANCHNAME)' != ''" >$(BUILD_SOURCEBRANCHNAME)</GitBranch >
28+
29+ <!-- We don't build stable versions from non-master branches. When the version came from the branch, we leave it as-is. -->
30+ <GitSemVerDashLabel Condition =" '$(GitBranch)' != 'master' and '$(GitSemVerDashLabel)' == '' and '$(GitSemVerSource)' != 'Branch'" >-$(GitBranch)</GitSemVerDashLabel >
2831 </PropertyGroup >
2932
3033 <ItemGroup >
31- <VersionMetadata Include =" $(GitCommits)" />
32- <VersionMetadata Include =" $(GitBranch)" Condition =" '$(GitBranch)' != 'master'" />
34+ <VersionMetadata Include =" $(GitCommits)" Condition =" '$(GitSemVerDashLabel)' == ''" />
35+
36+ <!-- Branch metadata always present for non-master branches, unless the existing label matches the branch.
37+ For a versioned branch, it doesn't make sense either. -->
38+ <VersionMetadata Include =" $(GitBranch)" Condition =" '$(GitBranch)' != 'master' and '$(GitSemVerSource)' != 'Branch' and '$(GitSemVerDashLabel)' != '-$(GitBranch)'" />
39+
3340 <VersionMetadata Condition =" $(CI) and '$(BUILD_REASON)' == 'PullRequest'"
3441 Include =" pr.$(SYSTEM_PULLREQUEST_PULLREQUESTNUMBER)" />
3542 <VersionMetadata Include =" sha.$(GitCommit)" />
3643 <VersionMetadata Condition =" $(CI)"
37- Include =" vsts .$(BUILD_BUILDID)" />
44+ Include =" build .$(BUILD_BUILDID)" />
3845 </ItemGroup >
3946
4047 <PropertyGroup >
4148 <VersionMetadataLabel >@(VersionMetadata -> '%(Identity)', '-')</VersionMetadataLabel >
4249 <VersionMetadataPlusLabel Condition =" '$(VersionMetadataLabel)' != ''" >+$(VersionMetadataLabel)</VersionMetadataPlusLabel >
43- <PackageVersion >$(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)$(GitSemVerDashLabel)$(VersionMetadataPlusLabel)</PackageVersion >
44- <Version >$(PackageVersion)</Version >
50+ <GitSemVerDashLabel Condition =" '$(GitSemVerDashLabel)' != ''" >$(GitSemVerDashLabel).$(GitCommits)</GitSemVerDashLabel >
51+
52+ <BuildVersion >$(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)$(GitSemVerDashLabel)$(VersionMetadataPlusLabel)</BuildVersion >
53+
54+ <!-- Stable versions should have clean version numbers with no metadata -->
55+ <PackageVersion Condition =" '$(GitSemVerDashLabel)' == ''" >$(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)</PackageVersion >
56+ <PackageVersion Condition =" '$(GitSemVerDashLabel)' != ''" >$(GitBaseVersionMajor).$(GitBaseVersionMinor).$(GitBaseVersionPatch)$(GitSemVerDashLabel)$(VersionMetadataPlusLabel)</PackageVersion >
57+ <Version >$(BuildVersion)</Version >
4558 </PropertyGroup >
4659
4760 <ItemGroup >
0 commit comments