|
8 | 8 |
|
9 | 9 | <!-- Versioning Properties --> |
10 | 10 | <PropertyGroup> |
11 | | - <!-- The current Major version number for the Abstractions package. --> |
12 | | - <AbstractionsPackageMajorVersion>1</AbstractionsPackageMajorVersion> |
13 | | - |
14 | 11 | <!-- |
15 | | - If the Abstractions package version is specified on the command-line, then |
16 | | - we use it as-is, for example: |
17 | | -
|
18 | | - msbuild -p:AbstractionsPackageVersion=1.0.0 |
19 | | - dotnet build -p:AbstractionsPackageVersion=1.0.0 |
20 | | -
|
21 | | - Otherwise, we use a default value with a "-dev" suffix. |
22 | | -
|
23 | | - $(BuildNumber) is defined in tools/props/Versions.props. |
| 12 | + We accept two external properties to control versioning: |
| 13 | +
|
| 14 | + AbstractionsPackageVersion: |
| 15 | + - Used as the NuGet package version, both in the package file name |
| 16 | + and in the package metadata. |
| 17 | + - Used as the base value of the assembly attribute |
| 18 | + 'AssemblyInformationalVersion' generated by MSBuild. |
| 19 | + - If not specified, defaults to: |
| 20 | + $(AbstractionsPackageMajorVersion).0.0.$(BuildNumber)-dev. |
| 21 | + |
| 22 | + AbstractionsAssemblyFileVersion: |
| 23 | + - Used as the value of the assembly attribute 'AssemblyFileVersion' |
| 24 | + generated by MSBuild. |
| 25 | + - If not specified: |
| 26 | + - If $(AbstractionsPackageVersion) is specified, use the numeric |
| 27 | + parts of its value, for example 1.0.0.345. |
| 28 | + - Otherwise, defaults to: |
| 29 | + $(AbstractionsPackageMajorVersion).0.0.$(BuildNumber). |
24 | 30 | --> |
25 | | - <AbstractionsPackageVersionSuffix Condition="'$(AbstractionsPackageVersion)' == ''">-dev</AbstractionsPackageVersionSuffix> |
26 | | - <AbstractionsPackageVersion>$(AbstractionsPackageMajorVersion).0.0.$(BuildNumber)</AbstractionsPackageVersion> |
27 | 31 |
|
28 | | - <!-- |
29 | | - We pin the AssemblyVersion of our package to its current Major version |
30 | | - number, with all remaining parts set to 0. |
31 | | - --> |
32 | | - <AbstractionsPackageAssemblyVersion>$(AbstractionsPackageMajorVersion).0.0.0</AbstractionsPackageAssemblyVersion> |
| 32 | + <!-- The default major version number. --> |
| 33 | + <DefaultMajorVersion>1</DefaultMajorVersion> |
| 34 | + |
| 35 | + <!-- Determine the assembly file version. --> |
| 36 | + <!-- If AbstractionsAssemblyFileVersion is set, use its value as-is. --> |
| 37 | + <OurAssemblyFileVersion Condition="'$(AbstractionsAssemblyFileVersion)' != ''">$(AbstractionsAssemblyFileVersion)</OurAssemblyFileVersion> |
| 38 | + <!-- If AbstractionsPackageVersion is set, use its trimmed value. --> |
| 39 | + <OurAssemblyFileVersion Condition="'$(AbstractionsAssemblyFileVersion)' == '' and '$(AbstractionsPackageVersion)' != ''">$(AbstractionsPackageVersion.Split('-')[0])</OurAssemblyFileVersion> |
| 40 | + <!-- If neither property is set, use the default value.--> |
| 41 | + <OurAssemblyFileVersion Condition="'$(AbstractionsAssemblyFileVersion)' == '' and '$(AbstractionsPackageVersion)' == ''">$(DefaultMajorVersion).0.0.$(BuildNumber)</OurAssemblyFileVersion> |
| 42 | + |
| 43 | + <!-- Determine the package version. --> |
| 44 | + <OurPackageVersion Condition="'$(AbstractionsPackageVersion)' != ''">$(AbstractionsPackageVersion)</OurPackageVersion> |
| 45 | + <OurPackageVersion Condition="'$(AbstractionsPackageVersion)' == ''">$(DefaultMajorVersion).0.0.$(BuildNumber)-dev</OurPackageVersion> |
33 | 46 | </PropertyGroup> |
34 | 47 |
|
35 | 48 | <!-- Target Config --> |
|
48 | 61 | <AssemblyName>Microsoft.Data.SqlClient.Extensions.Abstractions</AssemblyName> |
49 | 62 | <RootNamespace>Microsoft.Data.SqlClient.Extensions.Abstractions</RootNamespace> |
50 | 63 |
|
51 | | - <AssemblyVersion>$(AbstractionsPackageAssemblyVersion)</AssemblyVersion> |
52 | | - <AssemblyFileVersion>$(AbstractionsPackageVersion)</AssemblyFileVersion> |
53 | | - <FileVersion>$(AssemblyFileVersion)</FileVersion> |
54 | | - <Version>$(AbstractionsPackageVersion)$(AbstractionsPackageVersionSuffix)</Version> |
| 64 | + <!-- |
| 65 | + We pin the AssemblyVersion of our package to the default major version |
| 66 | + number, with all remaining parts set to 0. |
| 67 | + --> |
| 68 | + <AssemblyVersion>$(DefaultMajorVersion).0.0.0</AssemblyVersion> |
| 69 | + |
| 70 | + <AssemblyFileVersion>$(OurAssemblyFileVersion)</AssemblyFileVersion> |
| 71 | + <FileVersion>$(OurAssemblyFileVersion)</FileVersion> |
| 72 | + <Version>$(OurPackageVersion)</Version> |
55 | 73 | </PropertyGroup> |
56 | 74 | <ItemGroup> |
57 | 75 | <!-- Our API is CLS Compliant. --> |
|
69 | 87 | See: https://learn.microsoft.com/en-us/nuget/reference/msbuild-targets#pack-target |
70 | 88 | --> |
71 | 89 | <PropertyGroup> |
72 | | - <!-- |
73 | | - We omit specifying <PackageId> here since it defaults to $(AssemblyName), |
74 | | - specified above. |
75 | | - --> |
76 | | - |
77 | | - <PackageVersion>$(Version)</PackageVersion> |
| 90 | + <PackageId>$(AssemblyName)</PackageId> |
| 91 | + <PackageVersion>$(OurPackageVersion)</PackageVersion> |
78 | 92 | <PackageOutputPath>$(PackagesDir)</PackageOutputPath> |
79 | 93 | <IncludeSymbols>true</IncludeSymbols> |
80 | 94 | <SymbolPackageFormat>snupkg</SymbolPackageFormat> |
|
0 commit comments