|
70 | 70 | - Otherwise: 2.0.2-dev-<timestamp> |
71 | 71 | --> |
72 | 72 |
|
73 | | - <Target Name="ComputeVersion" BeforeTargets="GenerateNuspec"> |
| 73 | + <Target Name="ComputeVersion" BeforeTargets="BeforeCompile" > |
74 | 74 | <PropertyGroup> |
75 | 75 | <_GitTmpFile>$([System.String]::Copy('$(IntermediateOutputPath)git-info.txt').Replace('\', '/'))</_GitTmpFile> |
76 | 76 | <Timestamp>$([System.DateTime]::UtcNow.ToString("yyyyMMddHHmmss"))</Timestamp> |
|
109 | 109 | <!-- 6. Version logic --> |
110 | 110 | <PropertyGroup> |
111 | 111 | <BaseVersion>$([System.Text.RegularExpressions.Regex]::Replace($(LatestTag), '^v', ''))</BaseVersion> |
| 112 | + <BaseVersion Condition="'$(LatestTag)' == ''">0.0.1</BaseVersion> |
| 113 | + <MajorVersion>$([System.Text.RegularExpressions.Regex]::Match('$(BaseVersion)', '^\d+').Value)</MajorVersion> |
| 114 | + <MajorVersion Condition="'$(MajorVersion)' == ''">0</MajorVersion> |
112 | 115 |
|
113 | 116 | <!-- Case 1: On exact tag, clean --> |
114 | 117 | <_ResolvedVersion Condition="'$(ExactTag)' != '' and '$(IsDirty)' == 'no'"> |
|
125 | 128 | $(BaseVersion)-dev-$(Timestamp) |
126 | 129 | </_ResolvedVersion> |
127 | 130 |
|
128 | | - <PackageVersion>$([System.String]::Copy($(_ResolvedVersion)).Trim())</PackageVersion> |
129 | | - </PropertyGroup> |
| 131 | + <Version>$([System.String]::Copy($(_ResolvedVersion)).Trim())</Version> |
130 | 132 |
|
| 133 | + <PackageVersion>$(Version)</PackageVersion> <!-- free form --> |
| 134 | + <InformationalVersion>$(Version)</InformationalVersion> <!-- free form, "Product Version" in file properties --> |
| 135 | + <AssemblyVersion>$(MajorVersion).0.0.0</AssemblyVersion> <!-- numeric, change only on breaking changes, which is what msft recommends for semver packages --> |
| 136 | + <FileVersion>$(AssemblyVersion)</FileVersion> <!-- numeric, "File Version" in file properties, match Assembly Version for easy visibility --> |
| 137 | + </PropertyGroup> |
| 138 | + |
131 | 139 | <Message Importance="High" Text="--- Git Version Debug Info ---" /> |
132 | 140 | <Message Importance="High" Text="LatestTag : $(LatestTag)" /> |
133 | 141 | <Message Importance="High" Text="ExactTag : $(ExactTag)" /> |
|
136 | 144 | <Message Importance="High" Text="MasterDescendant : $(MasterDescendant)" /> |
137 | 145 | <Message Importance="High" Text="BaseVersion : $(BaseVersion)" /> |
138 | 146 | <Message Importance="High" Text="_ResolvedVersion : $(_ResolvedVersion)" /> |
139 | | - <Message Importance="High" Text="Final Version : $(PackageVersion)" /> |
140 | 147 | <Message Importance="High" Text="----------------------------------" /> |
141 | | - |
| 148 | + <Message Importance="High" Text="Package Version : $(PackageVersion)" /> |
| 149 | + <Message Importance="High" Text="Assembly Version : $(AssemblyVersion)" /> |
| 150 | + <Message Importance="High" Text="File Version : $(FileVersion)" /> |
| 151 | + <Message Importance="High" Text="Informational Version : $(InformationalVersion)" /> |
| 152 | + <Message Importance="High" Text="----------------------------------" /> |
142 | 153 | </Target> |
143 | 154 |
|
144 | 155 | </Project> |
0 commit comments