AssemblyVersionInfo

March 28, 2025 ยท View on GitHub

AssemblyVersionInfo is a very simple source generator that generates constant strings of your assembly name and version.
The intended usage is for the GeneratedCodeAttribute.

All it does is generating a the static class Assembly in the namespace AssemblyVersionInfo:

// <auto-generated/>

namespace AssemblyVersionInfo;

internal static class Assembly {
    public const string NAME = "{{compilation.name}}";

    public const string VERSION_MAJOR = "{{compilation.version.Major}}";
    public const string VERSION_MINOR = "{{compilation.version.Minor}}";
    public const string VERSION_BUILD = "{{compilation.version.Build}}";
    public const string VERSION_REVISION = "{{compilation.version.Revision}}";

    public const string VERSION = "{{compilation.version}}";
    public const string VERSION_MAJOR_MINOR = "{{compilation.version.Major}}.{{compilation.version.Minor}}";
    public const string VERSION_MAJOR_MINOR_BUILD = "{{compilation.version.Major}}.{{compilation.version.Minor}}.{{compilation.version.Build}}";
}



Get Started

  1. Add PackageReference to your .csproj file.
<ItemGroup>
  <PackageReference Include="AssemblyVersionInfo" Version="{latest version}" PrivateAssets="all" />
</ItemGroup>
  1. Access the strings in the Assembly class.
using AssemblyVersionInfo;

const string example = $"AssemblyName={Assembly.NAME}, AssemblyVersion={Assembly.VERSION}";
Console.WriteLine(example);