Repository navigation
Expand file tree
/
Copy pathVersioning.targets
More file actions
93 lines (85 loc) · 4.9 KB
/
Copy pathVersioning.targets
File metadata and controls
93 lines (85 loc) · 4.9 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CurrentVersionFile>$(RootDir)CurrentVersion.props</CurrentVersionFile>
<MSBuildCommunityTasksPath Condition="'$(MSBuildCommunityTasksPath)' == ''">$(RootDir)Util\MSBuildCommunityTasks</MSBuildCommunityTasksPath>
<BuildSysDir Condition="'$(BuildSysDir)' == ''">$(RootDir)Build</BuildSysDir>
</PropertyGroup>
<!-- Do not re-import this if already imported. -->
<Import Project="$(CurrentVersionFile)" Condition="'$(MajorVersion)' == ''" />
<Import Project="$(MSBuildCommunityTasksPath)\MSBuild.Community.Tasks.Targets" Condition="'$(MSBuildCommunityTasksLib)' == ''" />
<PropertyGroup>
<ShortReleaseLevel Condition="'$(ReleaseLevel)' == 'alpha'">a</ShortReleaseLevel>
<ShortReleaseLevel Condition="'$(ReleaseLevel)' == 'beta'">b</ShortReleaseLevel>
<ShortReleaseLevel Condition="'$(ReleaseLevel)' == 'candidate'">rc</ShortReleaseLevel>
<ShortReleaseLevel Condition="'$(ReleaseLevel)' == 'final'">f</ShortReleaseLevel>
<DisplayVersion Condition="'$(ReleaseLevel)' == 'final' and '$(MicroVersion)' == '0'">$(MajorVersion).$(MinorVersion)</DisplayVersion>
<DisplayVersion Condition="'$(ReleaseLevel)' == 'final' and '$(MicroVersion)' != '0'">$(MajorVersion).$(MinorVersion).$(MicroVersion)</DisplayVersion>
<DisplayVersion Condition="'$(ReleaseLevel)' != 'final'">$(MajorVersion).$(MinorVersion).$(MicroVersion)$(ShortReleaseLevel)$(ReleaseSerial)</DisplayVersion>
<PackageVersion Condition="'$(ReleaseLevel)' == 'final'">$(MajorVersion).$(MinorVersion).$(MicroVersion)</PackageVersion>
<PackageVersion Condition="'$(ReleaseLevel)' != 'final' or '$(ReleaseSerial)' != '0'">$(MajorVersion).$(MinorVersion).$(MicroVersion)-$(ReleaseLevel)$(ReleaseSerial)</PackageVersion>
<AssemblyFileRevision Condition="'$(ReleaseLevel)' == 'alpha'">000$(ReleaseSerial)</AssemblyFileRevision>
<AssemblyFileRevision Condition="'$(ReleaseLevel)' == 'beta'">00$(ReleaseSerial)0</AssemblyFileRevision>
<AssemblyFileRevision Condition="'$(ReleaseLevel)' == 'candidate'">0$(ReleaseSerial)00</AssemblyFileRevision>
<AssemblyFileRevision Condition="'$(ReleaseLevel)' == 'final'">1000</AssemblyFileRevision>
</PropertyGroup>
<ItemGroup>
<BuildInfoTemplate Include="$(BuildSysDir)\Templates\BuildInfo.Template.cs" />
<CurrentVersionTemplate Include="$(BuildSysDir)\Templates\CurrentVersion.Template.cs" />
<Tokens Include="CurrentDate">
<ReplacementValue>$([System.DateTime]::Now.ToString('yyyy-MM-dd hh:mm:ss'))</ReplacementValue>
</Tokens>
</ItemGroup>
<Target Name="GenerateCurrentVersion"
Inputs="$(CurrentVersionFile);@(CurrentVersionTemplate);$(MSBuildThisFileFullPath)"
Outputs="Properties\CurrentVersion.Generated.cs">
<ItemGroup>
<Tokens Include="MajorVersion">
<ReplacementValue>$(MajorVersion)</ReplacementValue>
</Tokens>
<Tokens Include="MinorVersion">
<ReplacementValue>$(MinorVersion)</ReplacementValue>
</Tokens>
<Tokens Include="MicroVersion">
<ReplacementValue>$(MicroVersion)</ReplacementValue>
</Tokens>
<Tokens Include="ReleaseLevel">
<ReplacementValue>$(ReleaseLevel)</ReplacementValue>
</Tokens>
<Tokens Include="ReleaseSerial">
<ReplacementValue>$(ReleaseSerial)</ReplacementValue>
</Tokens>
<Tokens Include="ShortReleaseLevel">
<ReplacementValue>$(ShortReleaseLevel)</ReplacementValue>
</Tokens>
<Tokens Include="DisplayVersion">
<ReplacementValue>$(DisplayVersion)</ReplacementValue>
</Tokens>
<Tokens Include="AssemblyRevision">
<ReplacementValue>$(AssemblyRevision)</ReplacementValue>
</Tokens>
<Tokens Include="AssemblyFileRevision">
<ReplacementValue>$(AssemblyFileRevision)</ReplacementValue>
</Tokens>
</ItemGroup>
<PropertyGroup>
<OutputDirectory>$(MSBuildProjectDirectory)\Properties</OutputDirectory>
</PropertyGroup>
<MakeDir Directories="$(OutputDirectory)" Condition="!Exists('$(OutputDirectory)')" />
<TemplateFile Template="@(CurrentVersionTemplate)" OutputFilename="$(OutputDirectory)\CurrentVersion.Generated.cs" Tokens="@(Tokens)"/>
</Target>
<Target Name="GenerateBuildInfo"
Inputs="$(CurrentVersionFile);@(BuildInfoTemplate);$(MSBuildThisFileFullPath)"
Outputs="Properties\BuildInfo.Generated.cs">
<ItemGroup>
<Tokens Include="Configuration">
<ReplacementValue>$(Configuration)</ReplacementValue>
</Tokens>
</ItemGroup>
<PropertyGroup>
<OutputDirectory>$(MSBuildProjectDirectory)\Properties</OutputDirectory>
</PropertyGroup>
<MakeDir Directories="$(OutputDirectory)" Condition="!Exists('$(OutputDirectory)')" />
<TemplateFile Template="@(BuildInfoTemplate)" OutputFilename="$(OutputDirectory)\BuildInfo.Generated.cs" Tokens="@(Tokens)"/>
</Target>
</Project>