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にしておく。
ここで気をつけるのは、上で使っていたGetExecutingAssemblyメソッドをGetCallingAssemblyに変えること。欲しいのは自分のバージョン番号ではなく、呼び出している親のアセンブリのバージョン番号なので。EXEファイルとDLLファイルに分けたのでこれが必要。
- 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;
- }
- }
- }
呼び出す側は、
- MessageBox.Show(myLibrary.myAssembly.myAppVersion());
と1行で終わり。簡単でよろしい。
*
コメント
コメントを投稿