EXEファイルのバージョン番号などを得る手順
C#で書いてビルドしたEXEファイルには、バージョン番号とかタイトルなどの情報が保存されていて、System.Reflectionを使うと読み出すことができます。その手順をメモします。
EXEファイルのバージョン番号を表示するには、フォームにボタンを貼って、下記のコードを追記する。ああ、最初に「using System.Reflection;」をお忘れなく。
呼び出す側は、
と1行で終わり。簡単でよろしい。
*
EXEファイルのバージョン番号を表示するには、フォームにボタンを貼って、下記のコードを追記する。ああ、最初に「using System.Reflection;」をお忘れなく。
Attribute att = Attribute.GetCustomAttribute( Assembly.GetExecutingAssembly(), typeof(AssemblyFileVersionAttribute)); AssemblyFileVersionAttribute attVersion = (AssemblyFileVersionAttribute)att; MessageBox.Show(attVersion.Version);
呪文みたいに長々しい。「myApp.Version」みたいに参照できたら簡単なのにね。
実行するとこんな感じ。
毎回、こんな長いコードを書くのはいやなので、クラスライブラリを作って簡単に呼び出したいと思ったとしよう。
どうするか。
まずクラスライブラリのプロジェクトを新規に作成してソリューションに追加する。下図のmyLibraryが追加したクラスライブラリ。
そして、アセンブリのバージョン番号を返すメソッドを追加する。メソッドはお気軽に呼び出したいのでstaticにしておく。
using System.Reflection; namespace myLibrary { public class myAssembly { static public string myAppVersion() { Attribute att = Attribute.GetCustomAttribute( Assembly.GetCallingAssembly(), typeof(AssemblyFileVersionAttribute)); AssemblyFileVersionAttribute attVersion = (AssemblyFileVersionAttribute)att; return attVersion.Version; } } }ここで気をつけるのは、上で使っていたGetExecutingAssemblyメソッドをGetCallingAssemblyに変えること。欲しいのは自分のバージョン番号ではなく、呼び出している親のアセンブリのバージョン番号なので。EXEファイルとDLLファイルに分けたのでこれが必要。
呼び出す側は、
MessageBox.Show(myLibrary.myAssembly.myAppVersion());
と1行で終わり。簡単でよろしい。
*
コメント
コメントを投稿