11<Project xmlns =" http://schemas.microsoft.com/developer/msbuild/2003" >
22
3- <PropertyGroup >
4- <MSBuildAllProjects Condition =" '$(MSBuildAssemblyVersion)' == '' Or '$(MSBuildAssemblyVersion)' < '16.0'" >$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects >
5- <GetPackageVersionDependsOn >$(GetPackageVersionDependsOn);BuildVersioning</GetPackageVersionDependsOn >
6- </PropertyGroup >
7-
8- <PropertyGroup >
9- <NoWarn >$(NoWarn);MSB3073;MSB4181</NoWarn >
10- </PropertyGroup >
3+ <PropertyGroup >
4+ <MSBuildAllProjects Condition =" '$(MSBuildAssemblyVersion)' == '' Or '$(MSBuildAssemblyVersion)' < '16.0'" >$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects >
5+ <GetPackageVersionDependsOn >$(GetPackageVersionDependsOn);BuildVersioning</GetPackageVersionDependsOn >
6+ </PropertyGroup >
117
12- <PropertyGroup >
13- <BuildVersioningToolPath Condition =" $(BuildVersioningToolPath) == ''" >$(MSBuildThisFileDirectory)../tools/TurnerSoftware.BuildVersioning.Tool.dll</BuildVersioningToolPath >
14- <BuildFullVersionFormat Condition =" $(BuildFullVersionFormat) == ''" >{Major}.{Minor}.{Patch}{PreRelease}{BuildMetadata}</BuildFullVersionFormat >
15- <BuildFileVersionFormat Condition =" $(BuildFileVersionFormat) == ''" >{Major}.{Minor}.{Patch}.0</BuildFileVersionFormat >
16- <BuildAssemblyVersionFormat Condition =" $(BuildAssemblyVersionFormat) == ''" >{Major}.0.0.0</BuildAssemblyVersionFormat >
17- <BuildPreReleaseFormat Condition =" $(BuildPreReleaseFormat) == ''" >dev.{CommitHeight}</BuildPreReleaseFormat >
18- <BuildMetadataFormat Condition =" $(BuildMetadataFormat) == ''" >{CommitHash}</BuildMetadataFormat >
19- <BuildVersioningLogLevel Condition =" $(BuildVersioningLogLevel) == ''" >low</BuildVersioningLogLevel >
20- </PropertyGroup >
8+ <PropertyGroup >
9+ <NoWarn >$(NoWarn);MSB3073;MSB4181</NoWarn >
10+ </PropertyGroup >
2111
22- <Import Project =" TurnerSoftware.BuildVersioning.Integrations.targets"
23- Condition =" $(DesignTimeBuild) != 'true' AND $(SkipBuildVersioning) != 'true'" />
12+ <PropertyGroup >
13+ <BuildVersioningToolBasePath Condition =" $(BuildVersioningToolBasePath) == ''" >$(MSBuildThisFileDirectory)../tools</BuildVersioningToolBasePath >
14+ <BuildFullVersionFormat Condition =" $(BuildFullVersionFormat) == ''" >{Major}.{Minor}.{Patch}{PreRelease}{BuildMetadata}</BuildFullVersionFormat >
15+ <BuildFileVersionFormat Condition =" $(BuildFileVersionFormat) == ''" >{Major}.{Minor}.{Patch}.0</BuildFileVersionFormat >
16+ <BuildAssemblyVersionFormat Condition =" $(BuildAssemblyVersionFormat) == ''" >{Major}.0.0.0</BuildAssemblyVersionFormat >
17+ <BuildPreReleaseFormat Condition =" $(BuildPreReleaseFormat) == ''" >dev.{CommitHeight}</BuildPreReleaseFormat >
18+ <BuildMetadataFormat Condition =" $(BuildMetadataFormat) == ''" >{CommitHash}</BuildMetadataFormat >
19+ <BuildVersioningLogLevel Condition =" $(BuildVersioningLogLevel) == ''" >low</BuildVersioningLogLevel >
20+ </PropertyGroup >
2421
25- <Target Name =" BuildVersioning"
26- BeforeTargets =" BeforeCompile;GenerateNuspec"
27- Condition =" $(DesignTimeBuild) != 'true' AND $(SkipBuildVersioning) != 'true'" >
28- <Error Condition =" '$(UsingMicrosoftNETSdk)' != 'true'" Code =" BLDVER0001" Text =" Build Versioning only works in SDK-style projects." />
29- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: Project=$(MSBuildProjectFile)" />
30- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: BuildVersioningToolPath=$(BuildVersioningToolPath)" />
31- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: FullVersionFormat=$(BuildFullVersionFormat)" />
32- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: FileVersionFormat=$(BuildFileVersionFormat)" />
33- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: AssemblyVersionFormat=$(BuildAssemblyVersionFormat)" />
34- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: PreReleaseFormat=$(BuildPreReleaseFormat)" />
35- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: BuildMetadataFormat=$(BuildMetadataFormat)" />
36- <ItemGroup >
37- <BuildVersioningInputs Include =" --full-version-format " $(BuildFullVersionFormat)" " />
38- <BuildVersioningInputs Include =" --file-version-format " $(BuildFileVersionFormat)" " />
39- <BuildVersioningInputs Include =" --assembly-version-format " $(BuildAssemblyVersionFormat)" " />
40- <BuildVersioningInputs Condition =" $(BuildPreReleaseFormat) != ''" Include =" --prerelease-format " $(BuildPreReleaseFormat)" " />
41- <BuildVersioningInputs Condition =" $(BuildMetadataFormat) != ''" Include =" --build-metadata-format " $(BuildMetadataFormat)" " />
42- </ItemGroup >
43- <Exec Command =" dotnet " $(BuildVersioningToolPath)" @(BuildVersioningInputs->'%(Identity)', ' ')" ConsoleToMSBuild =" true" StandardOutputImportance =" Low" ContinueOnError =" true" >
44- <Output TaskParameter =" ConsoleOutput" PropertyName =" BuildVersioningOutput" />
45- <Output TaskParameter =" ExitCode" PropertyName =" BuildVersioningErrorCode" />
46- </Exec >
47- <Error Condition =" $(BuildVersioningErrorCode) == -1" Text =" Build versioning failed. Make sure `git` is in the PATH and that the `.git` folder is present." />
48- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: Output=$(BuildVersioningOutput)" />
49- <PropertyGroup Condition =" $(BuildVersioningErrorCode) == 0" >
50- <BuildFullVersion >$(BuildVersioningOutput.Split(`;`)[0])</BuildFullVersion >
51- <BuildFileVersion >$(BuildVersioningOutput.Split(`;`)[1])</BuildFileVersion >
52- <BuildAssemblyVersion >$(BuildVersioningOutput.Split(`;`)[2])</BuildAssemblyVersion >
53- <PackageVersion >$(BuildFullVersion)</PackageVersion >
54- <FileVersion >$(BuildFileVersion)</FileVersion >
55- <AssemblyVersion >$(BuildAssemblyVersion)</AssemblyVersion >
56- <Version >$(BuildFullVersion)</Version >
57- </PropertyGroup >
58- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: PackageVersion=$(PackageVersion)" />
59- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: FileVersion=$(FileVersion)" />
60- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: AssemblyVersion=$(AssemblyVersion)" />
61- <Message Importance =" $(BuildVersioningLogLevel)" Text =" BuildVersioning: Version=$(Version)" />
62- </Target >
22+ <Target Name =" DetectBuildVersioningToolFramework" Condition =" $(BuildVersioningToolFramework) == ''" BeforeTargets =" BeforeBuild" >
23+ <Exec Command =" dotnet --info" ConsoleToMSBuild =" true" StandardOutputImportance =" Low" ContinueOnError =" true" >
24+ <Output TaskParameter =" ConsoleOutput" PropertyName =" _DotnetInfo" />
25+ </Exec >
26+ <PropertyGroup >
27+ <BuildVersioningToolFramework Condition =" $(_DotnetInfo.Contains(" NETCore.App 5.0" ))" >net5.0</BuildVersioningToolFramework >
28+ <BuildVersioningToolFramework Condition =" $(_DotnetInfo.Contains(" NETCore.App 6.0" ))" >net6.0</BuildVersioningToolFramework >
29+ </PropertyGroup >
30+ <Error Condition =" $(BuildVersioningToolFramework) == ''" Text =" Build versioning failed. Installed .NET versions incompatible with Build Versioning." />
31+ <Message Importance =" $(BuildVersioningLogLevel)" Text =" Build Versioning Tool Runtime: $(BuildVersioningToolFramework)" />
32+ <PropertyGroup >
33+ <BuildVersioningToolPath >$(BuildVersioningToolBasePath)/$(BuildVersioningToolFramework)/TurnerSoftware.BuildVersioning.Tool.dll</BuildVersioningToolPath >
34+ </PropertyGroup >
35+ </Target >
36+
37+ <Import Project =" TurnerSoftware.BuildVersioning.Integrations.targets"
38+ Condition=" $(DesignTimeBuild) != 'true' AND $(SkipBuildVersioning) != 'true'" />
39+
40+ <Target Name =" BuildVersioning"
41+ DependsOnTargets=" DetectBuildVersioningToolFramework"
42+ BeforeTargets=" BeforeCompile;GenerateNuspec"
43+ Condition=" $(DesignTimeBuild) != 'true' AND $(SkipBuildVersioning) != 'true'" >
44+ <Error Condition =" '$(UsingMicrosoftNETSdk)' != 'true'" Code =" BLDVER0001" Text =" Build Versioning only works in SDK-style projects." />
45+ <PropertyGroup >
46+ <_BuildVersioningDebuggingMessage Condition =" $(BuildVersioningLogLevel) == 'high'" >high</_BuildVersioningDebuggingMessage >
47+ <_BuildVersioningInfoMessage Condition =" $(BuildVersioningLogLevel) != 'low'" >high</_BuildVersioningInfoMessage >
48+ </PropertyGroup >
49+ <PropertyGroup >
50+ <_BuildVersioningMessagePrefix >Build Versioning ($(MSBuildProjectName)</_BuildVersioningMessagePrefix >
51+ <_BuildVersioningMessagePrefix Condition =" $(TargetFramework) != ''" >$(_BuildVersioningMessagePrefix)/$(TargetFramework)</_BuildVersioningMessagePrefix >
52+ <_BuildVersioningMessagePrefix >$(_BuildVersioningMessagePrefix))</_BuildVersioningMessagePrefix >
53+ </PropertyGroup >
54+ <Message Importance =" $(_BuildVersioningDebuggingMessage)" Text =" $(_BuildVersioningMessagePrefix): FullVersionFormat=$(BuildFullVersionFormat)" />
55+ <Message Importance =" $(_BuildVersioningDebuggingMessage)" Text =" $(_BuildVersioningMessagePrefix): FileVersionFormat=$(BuildFileVersionFormat)" />
56+ <Message Importance =" $(_BuildVersioningDebuggingMessage)" Text =" $(_BuildVersioningMessagePrefix): AssemblyVersionFormat=$(BuildAssemblyVersionFormat)" />
57+ <Message Importance =" $(_BuildVersioningDebuggingMessage)" Text =" $(_BuildVersioningMessagePrefix): PreReleaseFormat=$(BuildPreReleaseFormat)" />
58+ <Message Importance =" $(_BuildVersioningDebuggingMessage)" Text =" $(_BuildVersioningMessagePrefix): BuildMetadataFormat=$(BuildMetadataFormat)" />
59+ <ItemGroup >
60+ <BuildVersioningInputs Include =" --full-version-format " $(BuildFullVersionFormat)" " />
61+ <BuildVersioningInputs Include =" --file-version-format " $(BuildFileVersionFormat)" " />
62+ <BuildVersioningInputs Include =" --assembly-version-format " $(BuildAssemblyVersionFormat)" " />
63+ <BuildVersioningInputs Condition =" $(BuildPreReleaseFormat) != ''" Include =" --prerelease-format " $(BuildPreReleaseFormat)" " />
64+ <BuildVersioningInputs Condition =" $(BuildMetadataFormat) != ''" Include =" --build-metadata-format " $(BuildMetadataFormat)" " />
65+ </ItemGroup >
66+ <Exec Command =" dotnet " $(BuildVersioningToolPath)" @(BuildVersioningInputs->'%(Identity)', ' ')" ConsoleToMSBuild =" true" StandardOutputImportance =" Low" ContinueOnError =" true" >
67+ <Output TaskParameter =" ConsoleOutput" PropertyName =" BuildVersioningOutput" />
68+ <Output TaskParameter =" ExitCode" PropertyName =" BuildVersioningErrorCode" />
69+ </Exec >
70+ <Error Condition =" $(BuildVersioningErrorCode) == -1" Text =" Build versioning failed. Make sure `git` is in the PATH and that the `.git` folder is present." />
71+ <Error Condition =" $(BuildVersioningErrorCode) == 150" Text =" Build versioning failed. Installed .NET versions incompatible with Build Versioning." />
72+ <Error Condition =" $(BuildVersioningErrorCode) == 1" Text =" Build versioning failed. If this keeps happening, please report it on GitHub." />
73+ <PropertyGroup Condition =" $(BuildVersioningErrorCode) == 0" >
74+ <BuildFullVersion >$(BuildVersioningOutput.Split(`;`)[0])</BuildFullVersion >
75+ <BuildFileVersion >$(BuildVersioningOutput.Split(`;`)[1])</BuildFileVersion >
76+ <BuildAssemblyVersion >$(BuildVersioningOutput.Split(`;`)[2])</BuildAssemblyVersion >
77+ <PackageVersion >$(BuildFullVersion)</PackageVersion >
78+ <FileVersion >$(BuildFileVersion)</FileVersion >
79+ <AssemblyVersion >$(BuildAssemblyVersion)</AssemblyVersion >
80+ <Version >$(BuildFullVersion)</Version >
81+ </PropertyGroup >
82+ <Message Importance =" $(_BuildVersioningDebuggingMessage)" Text =" $(_BuildVersioningMessagePrefix): PackageVersion=$(PackageVersion)" />
83+ <Message Importance =" $(_BuildVersioningDebuggingMessage)" Text =" $(_BuildVersioningMessagePrefix): FileVersion=$(FileVersion)" />
84+ <Message Importance =" $(_BuildVersioningDebuggingMessage)" Text =" $(_BuildVersioningMessagePrefix): AssemblyVersion=$(AssemblyVersion)" />
85+ <Message Importance =" $(_BuildVersioningInfoMessage)" Text =" $(_BuildVersioningMessagePrefix): Version=$(Version)" />
86+ </Target >
6387
6488</Project >
0 commit comments