-
-
Notifications
You must be signed in to change notification settings - Fork 59
/
MinVer.targets
60 lines (56 loc) 路 4.39 KB
/
MinVer.targets
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects Condition="'$(MSBuildAssemblyVersion)' == '' Or '$(MSBuildAssemblyVersion)' < '16.0'">$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<GetPackageVersionDependsOn>$(GetPackageVersionDependsOn);MinVer</GetPackageVersionDependsOn>
</PropertyGroup>
<PropertyGroup>
<MinVerDetailed>low</MinVerDetailed>
<MinVerDetailed Condition="'$(MinVerVerbosity)' == 'detailed' Or '$(MinVerVerbosity)' == 'd' Or '$(MinVerVerbosity)' == 'diagnostic' Or '$(MinVerVerbosity)' == 'diag'">high</MinVerDetailed>
</PropertyGroup>
<Target Name="MinVer" BeforeTargets="CoreCompile;GenerateNuspec" Condition="'$(DesignTimeBuild)' != 'true'">
<Error Condition="'$(UsingMicrosoftNETSdk)' != 'true'" Code="MINVER0001" Text="MinVer only works in SDK-style projects." />
<Error Condition="'$(MinVerMajorMinor)' != ''" Code="MINVER_TEMP0001" Text="MinVerMajorMinor has been renamed to MinVerMinimumMajorMinor." />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [input] MinVerBuildMetadata=$(MinVerBuildMetadata)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [input] MinVerMinimumMajorMinor=$(MinVerMinimumMajorMinor)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [input] MSBuildProjectDirectory=$(MSBuildProjectDirectory)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [input] MinVerTagPrefix=$(MinVerTagPrefix)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [input] MinVerVerbosity=$(MinVerVerbosity)" />
<ItemGroup>
<MinVerInputs Include="--build-metadata "$(MinVerBuildMetadata)"" />
<MinVerInputs Include="--minimum-major-minor "$(MinVerMinimumMajorMinor)"" />
<MinVerInputs Include="--repo "$(MSBuildProjectDirectory)"" />
<MinVerInputs Include="--tag-prefix "$(MinVerTagPrefix)"" />
<MinVerInputs Include="--verbosity "$(MinVerVerbosity)"" />
</ItemGroup>
<Exec Command="dotnet "$(MSBuildThisFileDirectory)../minver/MinVer.dll" @(MinVerInputs->'%(Identity)', ' ')" ConsoleToMSBuild="true">
<Output TaskParameter="ConsoleOutput" ItemName="MinVerConsoleOutput" />
</Exec>
<ItemGroup>
<MinVerOutputVersion Include="@(MinVerConsoleOutput)" Condition="'$([System.String]::new(`%(Identity)`).StartsWith(`MinVer:`))' != 'true'" />
</ItemGroup>
<PropertyGroup>
<MinVerVersion>@(MinVerOutputVersion)</MinVerVersion>
<MinVerMajor>$(MinVerVersion.Split(`.`)[0])</MinVerMajor>
<MinVerMinor>$(MinVerVersion.Split(`.`)[1])</MinVerMinor>
<MinVerPatch>$(MinVerVersion.Split(`.`)[2].Split(`-`)[0].Split(`+`)[0])</MinVerPatch>
<MinVerPreRelease></MinVerPreRelease>
<MinVerPreRelease Condition="$(MinVerVersion.Split(`+`)[0].Contains(`-`))">$(MinVerVersion.Split(`+`)[0].Split(`-`)[1])</MinVerPreRelease>
<MinVerBuildMetadata></MinVerBuildMetadata>
<MinVerBuildMetadata Condition="$(MinVerVersion.Contains(`+`))">$(MinVerVersion.Split(`+`)[1])</MinVerBuildMetadata>
<AssemblyVersion>$(MinVerMajor).0.0.0</AssemblyVersion>
<FileVersion>$(MinVerMajor).$(MinVerMinor).$(MinVerPatch).0</FileVersion>
<PackageVersion>$(MinVerVersion)</PackageVersion>
<Version>$(MinVerVersion)</Version>
</PropertyGroup>
<Message Importance="$(MinVerDetailed)" Text="MinVer: [output] MinVerVersion=$(MinVerVersion)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [output] MinVerMajor=$(MinVerMajor)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [output] MinVerMinor=$(MinVerMinor)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [output] MinVerPatch=$(MinVerPatch)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [output] MinVerPreRelease=$(MinVerPreRelease)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [output] MinVerBuildMetadata=$(MinVerBuildMetadata)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [output] AssemblyVersion=$(AssemblyVersion)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [output] FileVersion=$(FileVersion)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [output] PackageVersion=$(PackageVersion)" />
<Message Importance="$(MinVerDetailed)" Text="MinVer: [output] Version=$(Version)" />
</Target>
</Project>