feat: auto-generate CalVer version from build date

Replace hardcoded AssemblyVersion/AssemblyFileVersion with a CalVer
scheme (YYYY.M.D.HHmm) generated at build time via an MSBuild target
that writes a CalVer.cs file into obj/ before compilation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
erik 2026-02-28 13:24:07 +00:00
parent a13d30f0b2
commit c702263770
3 changed files with 13 additions and 7 deletions

View file

@ -388,4 +388,16 @@
<Error Condition="!Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets'))" />
</Target>
<Import Project="..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets" Condition="Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" />
<!-- Auto-generate CalVer version: YYYY.M.D.HHmm -->
<Target Name="SetCalVer" BeforeTargets="CoreCompile">
<PropertyGroup>
<CalVerVersion>$([System.DateTime]::UtcNow.ToString("yyyy.M.d.HHmm"))</CalVerVersion>
<CalVerFile>$(IntermediateOutputPath)CalVer.cs</CalVerFile>
</PropertyGroup>
<WriteLinesToFile File="$(CalVerFile)" Overwrite="true"
Lines="using System.Reflection%3B;[assembly: AssemblyVersion(&quot;$(CalVerVersion)&quot;)];[assembly: AssemblyFileVersion(&quot;$(CalVerVersion)&quot;)]" />
<ItemGroup>
<Compile Include="$(CalVerFile)" />
</ItemGroup>
</Target>
</Project>