fix agent version generation

This commit is contained in:
Oliver Kieselbach
2026-04-01 17:33:39 +02:00
parent 615f611b5c
commit bdb77e025a
2 changed files with 13 additions and 30 deletions
@@ -13,12 +13,15 @@
<!-- Build counter file location -->
<BuildCounterFile>$(MSBuildProjectDirectory)\buildcounter.txt</BuildCounterFile>
<!-- Build number: Priority order:
1. Use BUILD_NUMBER from CI/CD environment (GitHub Actions, Azure DevOps, etc.)
2. Use build counter from file (incremented on each build)
3. Fallback to date-based build number (yyyyMMdd) -->
<!-- Build number: CI/CD environment takes priority -->
<BuildNumber Condition="'$(BUILD_NUMBER)' != ''">$(BUILD_NUMBER)</BuildNumber>
<BuildNumber Condition="'$(BUILD_NUMBER)' == ''">0</BuildNumber> <!-- Placeholder, will be set by target -->
<!-- Local build: read counter from file and increment during PROPERTY EVALUATION
(static property functions run before all targets, preventing timing issues
with _GenerateAssemblyInfo which can miss properties set in targets) -->
<_CounterFromFile Condition="'$(BUILD_NUMBER)' == '' and Exists('$(BuildCounterFile)')">$([System.IO.File]::ReadAllText('$(BuildCounterFile)').Trim())</_CounterFromFile>
<_CounterFromFile Condition="'$(BUILD_NUMBER)' == '' and !Exists('$(BuildCounterFile)')">0</_CounterFromFile>
<BuildNumber Condition="'$(BUILD_NUMBER)' == ''">$([MSBuild]::Add($(_CounterFromFile), 1))</BuildNumber>
<!-- Combine to full version: 1.0.BuildNumber -->
<Version>$(VersionPrefix).$(BuildNumber)</Version>
@@ -30,30 +33,10 @@
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
</PropertyGroup>
<!-- Auto-increment build number if not from CI/CD -->
<Target Name="IncrementBuildNumber" BeforeTargets="BeforeBuild" Condition="'$(BUILD_NUMBER)' == ''">
<PropertyGroup>
<!-- Read current build number from file, or start at 1 if file doesn't exist -->
<CurrentBuildNumber Condition="Exists('$(BuildCounterFile)')">$([System.IO.File]::ReadAllText('$(BuildCounterFile)').Trim())</CurrentBuildNumber>
<CurrentBuildNumber Condition="!Exists('$(BuildCounterFile)')">0</CurrentBuildNumber>
<!-- Increment build number -->
<NewBuildNumber>$([MSBuild]::Add($(CurrentBuildNumber), 1))</NewBuildNumber>
</PropertyGroup>
<!-- Write new build number to file -->
<WriteLinesToFile File="$(BuildCounterFile)" Lines="$(NewBuildNumber)" Overwrite="true" />
<!-- Update the BuildNumber property -->
<PropertyGroup>
<BuildNumber>$(NewBuildNumber)</BuildNumber>
<Version>$(VersionPrefix).$(BuildNumber)</Version>
<AssemblyVersion>$(VersionPrefix).$(BuildNumber)</AssemblyVersion>
<FileVersion>$(VersionPrefix).$(BuildNumber)</FileVersion>
<InformationalVersion>$(Version)</InformationalVersion>
</PropertyGroup>
<Message Text="Auto-incremented build version to: $(Version)" Importance="high" />
<!-- Persist incremented counter to file for next build (write-back only, version already set above) -->
<Target Name="PersistBuildCounter" BeforeTargets="BeforeBuild" Condition="'$(BUILD_NUMBER)' == ''">
<WriteLinesToFile File="$(BuildCounterFile)" Lines="$(BuildNumber)" Overwrite="true" />
<Message Text="Build version: $(Version) (counter persisted)" Importance="high" />
</Target>
<!-- Generate version.json into build output for self-update and deployment upload -->
@@ -1 +1 @@
764
771