- - PR -
アセンブリからバージョン情報を取得する方法
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-02 00:53
デフォルトで作成されるAssemblyInfo.cs から下記の4つの属性をstring変数に
読み込む手順を教えてください。属性の使い方、ひいてはアセンブリについて 理解が不十分なので、なるべく簡単な手順をアドバイスいただければありがたいです。 // Major Version // Minor Version // Build Number // Revision … [assembly: AssemblyVersion("1.0.*")] | ||||||||||||||||||||
|
投稿日時: 2004-04-02 00:56
追記 (すみません)
Visual Studio .NET 2003 C# でのアドバイスを希望します。 (Windowsアプリケーション) | ||||||||||||||||||||
|
投稿日時: 2004-04-02 06:43
こんにちは
現在動作中のAssemblyなら下記で簡単に取得出来ます。 System.Reflection.Assembly.GetExecutingAssembly().FullName; 趣旨と違っていたら無視して下さい。 | ||||||||||||||||||||
|
投稿日時: 2004-04-02 08:16
プログラム中でバージョン番号が参照したいのだと思いますが、
System.Reflection.Assembly.GetExecutingAssembly.GetName.Version です。VB.NETのソースからコピペしたので、C#はちょっと違うかも。 | ||||||||||||||||||||
|
投稿日時: 2004-04-03 00:36
ご指摘に内容で目的が果たせました。(C#でも動作しました)
System.Reflection.Assembly.GetExecutingAssembly().GetName().Version ありがとうございました。 ただ、疑問があります。そもそも [assembly: AssemblyVersion("1.0.*")] がどうして(結びつけた覚えの無い) System.Reflection.Assembly.GetExecutingAssembly().GetName().Version と結びつくのでしょうか? 類似した質問ですが、 プログラムの作成日(コンパイルした日)をパラメータとして取得したい場合、 上述のAssemblyから得られるRevisionとBuildから逆算するのが良いでしょうか? この方法だと日付を逆算する必要がありますが、よりスマートな方法がありますか? また、AssemblyInfo.csの下記属性にもアクセスしたいのですが、 どう参照すれば良いのでしょうか? [assembly: AssemblyTitle("")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] | ||||||||||||||||||||
|
投稿日時: 2004-04-03 06:59
System.Reflection
System.Reflection.Assembly
System.Reflection.Assembly.GetExecutingAssembly
System.Reflection.Assembly.GetExecutingAssembly.GetName
System.Reflection.Assembly.GetExecutingAssembly.GetName.Version
−−−すべてMSDNから引用 | ||||||||||||||||||||
|
投稿日時: 2004-04-03 09:22
MSDNから引用までしていただきありがとうございます。
つまり、バージョン番号については汎用性が高く、また基本となる機能なので、最初からメソッドやプロパティが用意されているのですね。 それでは、AssemblyInfo.csに自分で独自の属性を追加し、それをパラメータ化 したい場合は、どうなるのでしょうか。 例えば下記の1行を独自に追加した場合、 どうやって変数に読み込めば良いのでしょうか? [assembly: AssemblyMyTitle("テストプログラム")] (私事ですが出張でコメントへの返信が遅れるかも知れません。ご理解願います) | ||||||||||||||||||||
|
投稿日時: 2004-04-03 18:10
改訂版 C#入門 第20章 実行時に参照可能な属性 が参考になると思います。 取得した Assembly のGetCustomAttributesメソッドかな? |