|
.NET TIPS
アセンブリ・バージョンとファイル・バージョンを一致させるには?[VS 2005のみ、C#、VB]
デジタルアドバンテージ 一色 政彦
2007/11/01 |
|
|
「TIPS:Visual Studio 2005でバージョン情報を設定するには?では、Visual Studio 2005(以降、VS 2005)のIDEで.NETアセンブリ(.EXEファイルや.DLLファイル)に対してバージョン番号を設定する方法を紹介している。.NETアプリケーションに設定できるバージョン番号には、(主に)アセンブリ・バージョン(Assembly Version)とファイル・バージョン(File Version)の2種類が存在し*1、前掲のTIPSの方法では、この両方を別々に設定しなければならない。
しかし現実的には、このアセンブリ・バージョンとファイル・バージョンを1つにまとめて設定できた方が、バージョン番号の管理は容易になるだろう。そこでその方法を本TIPSで紹介する。
VS 2005でアセンブリ・バージョンとファイル・バージョンをひとまとめに設定する方法
アセンブリ・バージョンやファイル・バージョンの設定は、VS 2005では次の画面(=[アセンブリ情報]ダイアログ)のようにビジュアル化されている(この画面の表示方法は「TIPS:Visual Studio 2005でバージョン情報を設定するには?」を参照されたい)。
|
[アセンブリ情報]ダイアログを利用したバージョン番号の設定 |
この[アセンブリ情報]ダイアログで設定したバージョン番号の値は、当然ながらソース・ファイルに格納されている。C#では「Properties」フォルダ内の「AssemblyInfo.cs」ファイル、VB(Visual Basic)では「My Project」フォルダ内の「AssemblyInfo.vb」ファイルである(※VBで、[ソリューション エクスプローラ]からこのファイルを参照・編集するには、[ソリューション エクスプローラ]の上部にある[すべてのファイルを表示]ボタンをON状態にしなければならない)。
次のコードは、それぞれのファイルでバージョン番号の設定が記述されている部分の抜粋である。
……省略……
// アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.2.3.4")]
[assembly: AssemblyFileVersion("5.6.7.8")] |
……省略……
' アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
'
' Major Version
' Minor Version
' Build Number
' Revision
'
' すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
' 既定値にすることができます:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.2.3.4")>
<Assembly: AssemblyFileVersion("5.6.7.8")> |
|
バージョン設定に関する部分のソース・コード(上:C#、下:VB) |
このコードの意味については、「TIPS:アセンブリにバージョン情報を設定するには?」で詳しく説明されているので、詳しくはそちらを参照してほしい(本TIPSでは割愛する)。
このコードを見ると分かるように、アセンブリ・バージョンを設定するには、アセンブリに対してAssemblyVersion属性を指定すればよく、ファイル・バージョンを設定するにはAssemblyFileVersion属性を指定すればよい(いずれもSystem.Reflection名前空間の属性)。先ほどの[アセンブリ情報]ダイアログでバージョン番号を設定すると、これらの属性設定に関するコードが自動生成されるわけである。
では、AssemblyVersion属性とAssemblyFileVersion属性の値を1つにまとめるには、どうすればよいのか。これにはAssemblyFileVersion属性を指定しなければよい。というのも、ファイル・バージョンは、AssemblyFileVersion属性の値が指定されていなければAssemblyVersion属性の値を既定値として使う仕様になっているからだ。
次のコードは、AssemblyFileVersion属性をコメントアウトしたコードの例である。
……省略……
[assembly: AssemblyVersion("1.2.3.4")]
//[assembly: AssemblyFileVersion("5.6.7.8")] |
……省略……
<Assembly: AssemblyVersion("1.2.3.4")>
'<Assembly: AssemblyFileVersion("5.6.7.8")> |
|
AssemblyFileVersion属性をコメントアウトしたコードの例(上:C#、下:VB) |
この状態で、先ほど示したVS 2005の[アセンブリ情報]ダイアログを開くと、次の画面のように[ファイル バージョン]が空欄で表示される。
|
AssemblyFileVersion属性をコメントアウトした後の[アセンブリ情報]ダイアログ |
以降、バージョン番号を設定する際は、この[アセンブリ情報]ダイアログの[アセンブリ バージョン]の欄だけを編集すればよい。これだけで、ファイル・バージョンが常にアセンブリ・バージョンと同じ値になる。
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間