-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathVersion.props
More file actions
41 lines (36 loc) · 3.03 KB
/
Version.props
File metadata and controls
41 lines (36 loc) · 3.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<Project>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<!-- DEVNOTE(chgagnon)
Assembly versioning for SMO is unfortunately a bit complex due to the need for both applocal and GAC versions of SMO, which
we don't want to interfere with one another.
AppLocal - Has a minor assembly version of 100
GAC - Has a minor assembly version of 0
Because of this, we construct a couple different types of versions. These versions use the following properties :
AssemblyMajorVersion - The overall major version of SMO, changes rarely and is monotonically increasing
AssemblyMinorVersion - Either 0 (for GAC) or 100 (for applocal)
AssemblyBuildVersion - Essentially the "minor" version for a given major version, starts at 0 and increments with each release branch
AssemblyRevisionVersion - The number generated by the pipeline counter from include-commonvariables, monotonically increasing value for a given Major/Build version pair
The versions then are:
AssemblyFileVersion/InformationalVersion - Includes all 4 parts, used for display and file versioning
AssemblyVersion - Includes only Major and Minor, used by the runtime for binding
PackageVersion - Used for nuget packaging, includes Major+Build as major version, Revision as minor version, and 0 as patch version
-->
<PackageMajorVersionIncrement Condition="'$(PackageMajorVersionIncrement)'==''">1</PackageMajorVersionIncrement>
<AssemblyMajorVersion Condition="'$(AssemblyMajorVersion)'==''">18</AssemblyMajorVersion>
<!-- The minor version is either 0 (for GAC) or 100 (for applocal) -->
<AssemblyMinorVersion Condition="'$(AssemblyMinorVersion)'=='' and '$(GacVersion)' == 'true'">0</AssemblyMinorVersion>
<AssemblyMinorVersion Condition="'$(AssemblyMinorVersion)'==''">100</AssemblyMinorVersion>
<!-- Essentially the "minor" version for a given major version, allows us to have multiple release branches for a given major version -->
<AssemblyBuildVersion Condition="'$(AssemblyBuildVersion)'==''">$(PackageMajorVersionIncrement)</AssemblyBuildVersion>
<!-- The revision will be incremented with each build -->
<AssemblyRevisionVersion Condition="'$(AssemblyRevisionVersion)'==''">0</AssemblyRevisionVersion>
<AssemblyFileVersion Condition="'$(AssemblyFileVersion)'==''">$(AssemblyMajorVersion).$(AssemblyMinorVersion).$(AssemblyBuildVersion).$(AssemblyRevisionVersion)</AssemblyFileVersion>
<!-- Source link will append the most recent branch commit id to the informational version -->
<InformationalVersion>$(AssemblyFileVersion)</InformationalVersion>
<FileVersion>$(AssemblyFileVersion)</FileVersion>
<Version>$(AssemblyFileVersion)</Version>
<PackageVersion Condition="'$(PackageVersion)' == ''">$(AssemblyMajorVersion)$(PackageMajorVersionIncrement).$(AssemblyRevisionVersion).0</PackageVersion>
<AssemblyVersion Condition="'$(AssemblyVersion)'==''">$(AssemblyMajorVersion).$(AssemblyMinorVersion).0.0</AssemblyVersion>
</PropertyGroup>
</Project>