- PR -

【C#】exeのプロパティのバージョン情報について

1
投稿者投稿内容
96
会議室デビュー日: 2005/06/09
投稿数: 17
投稿日時: 2007-01-23 20:34
いつもお世話になっております。

Windowsフォーム環境で実行ファイルを作成し、そのファイル(XXXX.exe)を
右クリック→プロパティで開いたバージョン情報タブ内の詳細部分
(Assembly Versionやコメントなど記述してある)に独自の項目、値を
設定するようなことはできるのでしょうか??

例)
項目:hoge
値:hogehoge

やりたいことは、
1.実行時にAssemblyInfo内に記述した情報の取得がしたい。← 実現OK。
2.バージョン情報に独自設定が可能であればしたい。   ← 可能か不明。


MSドキュメントやネット検索で情報を探したのですが、バージョン情報タブの詳細に
表示させることが実現できるかどうかが不明です。

知っている方がいれば、よろしくお願いします。


<環境>
OS:WindowsXP
MSDE 2003
(.NET Framework1.1)
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-01-23 21:54
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_getfileversioninfo.asp

ここからたどれると思います。
_________________
96
会議室デビュー日: 2005/06/09
投稿数: 17
投稿日時: 2007-01-24 20:51
お返事ありがとうございます。

頂いた情報をみました。実行ファイルのバージョン情報リソースを取得する方法でした。
知らない情報だったので、勉強になりました。


私の説明が悪かったのですが、exeは1つです。
A.exeのバージョン情報をB.exeで取得したいという訳ではないです。
(ここの理解が間違ってたら教えてください。)

1.に関しては、
exe内の処理で設定した情報(製品バージョン他)を取得して、処理を分岐させたいと
いうのがやりたいことです。
設定場所は、他でもよかったのですが、製品バージョンの表示(バージョン情報)、
取得ができるので他の定義もAssemblyInfoにまとめてすれば同じ部分の変更でいいかなと思った次第です。
※足りない定義は、カスタム属性を用いる。

[assembly: AssemblyInformationalVersion("アプリケーションのバージョン")]
[assembly: AssemblyXXXXVersion("その他のバージョン")]←★


2.に関しては、
1.でAssemblyInfoに設定した製品バージョンが、XXXX.exeのプロパティのバージョン情報に
出力されると言う事がわかったので、1.の自分で設定した情報(★)も詳細部分に
表示できるとより嬉しい。


ということなのですが・・・。

2.は簡単に実装できないのでしょうか??

※VS 2003で開発中です。
96
会議室デビュー日: 2005/06/09
投稿数: 17
投稿日時: 2007-02-01 13:49
自己レスです。

2.に関しては、妥協して別画面に出すことになりました。
中途半端ですが、これで〆たいと思います。

お返事を下さったJittaさんどうもありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-02-01 22:18
引用:

私の説明が悪かったのですが、exeは1つです。
A.exeのバージョン情報をB.exeで取得したいという訳ではないです。
(ここの理解が間違ってたら教えてください。)


 a.exe の中で、a.exe へのパスを指定して GetFileVersionInfo を発行すれば、a.exe のバージョン情報が取れるのではないでしょうか。

2の方。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_getfileversioninfo.asp
こちらのページの「解説」のところにあるのですが、ここで定義されている文字列に対して、定義できます。

懺悔:英文見ていて、これが自由に定義できると読み誤ったようです。申し訳ない。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)