[C#] Visual StudioのAssembly情報を取得し出力する


はじめに

プロジェクトを作成する際、Assembly情報にバージョン情報やプロダクト情報を記載します。
ここでは、このAssembly情報の製品名、製品バージョン、コピーライトを取得する方法をメモします。

Assembly情報を標準出力で出力する

簡単に使えるようにClass化しておきます。


/***************************************
* using は System.Reflection利用
****************************************/

public class AssemblyUtil
{
    // 出力メソッド
    public static void TraceAssemblyInfo()
    {
        Console.WriteLine($"{GetAssemblyProduct()}");   
    }

    // Assemblyから製品情報を取得する
    public static string GetAssemblyProduct()
    {
        // 実行中のAssembly情報を取得する
        Assembly asm = Assembly.GetExcutingAssembly();

        // Assemblyのカスタム属性を取得する
        AssemblyProductAttribute asmProductAttr = (AssemblyProductAttribute)Attribute.GetCustomAttribute(asm, typeof(AssemblyProductAttribute));

        object[] copyrightArr = asm.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
        string copyright = string.Empty;
        if(copyrightArr != null && copyrightArr.Length > 0)
        {
            copyright = ((AssemblyCopyrightAttribute)copyrightArr[0]).Copyright;
        }

        return $"{asmProductAttr.Product} {asm.GetName().Version} {copyright}";
    }
}

使い方

以下のように使用します。

class Program
{
    static int Main(string[] args)
    {
        AssemblyUtil.TraceProductInfo();
    }
}

出力結果は下記の通りです

SampleProduct 1.0.xxxx.xxxxx Copyright (c) xxxxxxxx