はじめに
プロジェクトを作成する際、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