Other way of setting build number.

This commit is contained in:
Alexander Shabarshov 2026-05-16 20:47:16 +01:00
parent a4850dcb90
commit 80a346583d
4 changed files with 16 additions and 39 deletions

View File

@ -1,8 +1,12 @@
namespace splitter;
using System.Reflection;
namespace splitter;
public static class BuildInfo
{
public static string Version { get; } = ThisAssembly.Version;
public static string BuildNumber { get; } = ThisAssembly.BuildNumber;
public static string Commit { get; } = ThisAssembly.Commit;
private static readonly Assembly Assembly = typeof(BuildInfo).Assembly;
public static string Version => Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion ?? "unknown";
public static string FileVersion => Assembly.GetCustomAttribute<AssemblyFileVersionAttribute>()?.Version ?? "unknown";
public static string AssemblyVersion => Assembly.GetName().Version?.ToString() ?? "unknown";
}

View File

@ -330,7 +330,7 @@ public sealed class CommandLine
public static void PrintVersion()
{
Console.WriteLine($"...---=== splitter version {BuildInfo.Version} (commit {BuildInfo.Commit}, build {BuildInfo.BuildNumber}) ===---...");
Console.WriteLine($"...---=== splitter version {BuildInfo.Version} (file version: {BuildInfo.FileVersion}, build {BuildInfo.AssemblyVersion}) ===---...");
}
public static void PrintHelp()

View File

@ -1,9 +0,0 @@
// Auto-generated. Do not edit.
namespace splitter;
internal static class ThisAssembly
{
public const string Version = "@VERSION@";
public const string BuildNumber = "@BUILDNUMBER@";
public const string Commit = "@COMMIT@";
}

View File

@ -34,32 +34,14 @@
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>
<Target Name="GenerateBuildInfo" BeforeTargets="PrepareForBuild">
<Message Text="=== GENERATE BUILD INFO ===" Importance="High" />
<Message Text="Version: $(Version)" Importance="High" />
<Message Text="BuildNumber: $(BuildNumber)" Importance="High" />
<Message Text="Commit: $(SourceRevisionId)" Importance="High" />
<PropertyGroup>
<Version>1.0.0</Version>
<InformationalVersion>$(Version).$(BuildNumber)+$(SourceRevisionId)</InformationalVersion>
<AssemblyVersion>$(Version)</AssemblyVersion>
<FileVersion>$(Version).$(BuildNumber)</FileVersion>
</PropertyGroup>
<ReadLinesFromFile File="$(MSBuildProjectDirectory)\ThisAssembly.template">
<Output TaskParameter="Lines" ItemName="BuildInfoLines" />
</ReadLinesFromFile>
<ItemGroup>
<ProcessedBuildInfoLines Include="@(BuildInfoLines->Replace('@VERSION@', '$(Version)')->Replace('@BUILDNUMBER@', '$(BuildNumber)')->Replace('@COMMIT@', '$(SourceRevisionId)'))" />
</ItemGroup>
<Message Text="Template: @(BuildInfoLines)" Importance="High" />
<Message Text="Processed: @(ProcessedBuildInfoLines)" Importance="High" />
<WriteLinesToFile
File="$(MSBuildProjectDirectory)\ThisAssembly.g.cs"
Overwrite="true"
Lines="@(ProcessedBuildInfoLines)" />
</Target>
<Target Name="RemoveUnwantedFiles" AfterTargets="Publish" Condition="'$(Configuration)' == 'Release'">
<Target Name="RemoveUnwantedFiles" AfterTargets="Publish" Condition="'$(Configuration)' == 'Release'">
<ItemGroup>
<FilesToDelete Include="$(PublishDir)**\*.pdb" />
<FilesToDelete Include="$(PublishDir)**\*.lib" />