none
Visual C#でAssemblyInformationalVersionAttributeを取得したい RRS feed

  • 質問

  • はじめまして、Chespinです。私はC#でとあるアプリケーションを開発しているのですが、アセンブリ情報のAssemblyInformationalVersionAttributeを取得したいのですが、どうすればいいでしょうか?
    2015年9月28日 10:38

回答


  • var infoType = typeof(AssemblyInformationalVersionAttribute);
    var dstType = typeof(目的のアセンブリで定義されている任意の型);
    var assems = dstType.Assembly.GetCustomAttributes(infoType, false);
    if (assems.Length > 0) {
        var assem = (AssemblyInformationalVersionAttribute)assems[0];
        Console.WriteLine(assem.InformationalVersion);
    }

    目的のアセンブリが自分自身または参照しているアセンブリなら、こんな感じで取得できます。

    もちろんこの属性を定義していないアセンブリもあり、その場合は上記コードでLengthが0になります(Chespinさんが考慮すべきケースかどうかは知りませんが)。

    ところで、何に使用されるのでしょうか? それによっては他の属性も併せてチェックしたりする必要があったりとか色々ありますが。

    • 編集済み Hongliang 2015年9月28日 11:12 名前間違いを修正
    • 回答の候補に設定 星 睦美 2015年10月14日 2:47
    • 回答としてマーク Chespin 2015年10月14日 12:11
    2015年9月28日 10:56

すべての返信


  • var infoType = typeof(AssemblyInformationalVersionAttribute);
    var dstType = typeof(目的のアセンブリで定義されている任意の型);
    var assems = dstType.Assembly.GetCustomAttributes(infoType, false);
    if (assems.Length > 0) {
        var assem = (AssemblyInformationalVersionAttribute)assems[0];
        Console.WriteLine(assem.InformationalVersion);
    }

    目的のアセンブリが自分自身または参照しているアセンブリなら、こんな感じで取得できます。

    もちろんこの属性を定義していないアセンブリもあり、その場合は上記コードでLengthが0になります(Chespinさんが考慮すべきケースかどうかは知りませんが)。

    ところで、何に使用されるのでしょうか? それによっては他の属性も併せてチェックしたりする必要があったりとか色々ありますが。

    • 編集済み Hongliang 2015年9月28日 11:12 名前間違いを修正
    • 回答の候補に設定 星 睦美 2015年10月14日 2:47
    • 回答としてマーク Chespin 2015年10月14日 12:11
    2015年9月28日 10:56
  • バージョン情報です。

    ようは「x.x.x.x Beta」みたいなことをフォーム上に表示するのに使います。

    2015年10月14日 12:12
  • ちなみにWindowsFormのアプリケーションであれば、Application.ProductVersionを利用してもいいです。

    まあ、結局おおむね同じことなんですが(自力でやらなくてもいいというだけ)。

    2015年10月14日 15:21