コンポーネントのバージョン管理

各アセンブリの識別子には、4 つの部分で構成されるバージョン番号が含まれています。識別子の一部としてバージョン番号を含めることは、アセンブリのバージョンを識別して side-by-side 実行を行うために不可欠です。

この互換性バージョン番号は、物理的には、次に示す形式の 4 つの部分から成る番号として表されます。

MajorVersion.MinorVersion.BuildNumber.Revision.

バージョン番号は、メジャー、マイナ、ビルド、およびリビジョンの 4 つの部分で構成されます。バージョン番号の各部分に適用されるセマンティクスはありません。つまり、共通言語ランタイムは、どのようなバージョン番号が割り当てられているかに基づいて、アセンブリの互換性や、その他の特徴を推測することはできません。あるアセンブリのバージョン 1.0.0.0 とバージョン 2.1.0.2 は、クラス ローダーにとって、完全に別の識別子であるという意味しかありません。開発者は、必要に応じて、バージョン番号の任意の部分を自由に変更できます。バージョン番号の形式に適用されるセマンティクスはありませんが、バージョン番号をどのように変更していくかを定義した規則を作成しておくと役に立ちます。この規則によって、バージョン番号の整合性が得られると共に、特定のアセンブリがどのビルドで作成されたかなどを簡単に判断できます。典型的な規則を次に示します。

メジャーまたはマイナ。バージョン番号のメジャー部分とマイナ部分の変更は、互換性のない変更を示します。この規則では、バージョン 2.0.0.0 はバージョン 1.0.0.0 とは互換性がないものと見なされます。互換性のない変更の例としては、メソッド パラメータの型の変更や、型やメソッドの削除などが挙げられます。

ビルド。通常、ビルド番号は、毎日のビルドや、互換性のある小さな変更だけのリリースを区別するために使用されます。

リビジョン。通常、リビジョン番号の変更は、特定のバグを修正するために行われるインクリメンタル ビルド用に使用されます。リビジョン番号は、特定のバグを修正したバージョンを顧客に出荷するために頻繁に変更されるため、"緊急バグ修正番号" と呼ばれることもあります。

このようにして、互換性バージョン番号が 2.0.0.0 のアセンブリは、互換性バージョン番号が 1.0.0.0 のアセンブリとは互換性がないと考えられます。また、互換性番号 2.0.2.11 は、互換性番号 2.0.2.1 に対して QFE であると考えられます。

参照

厳密な名前のバージョン管理 | パッケージ化と配置の要約 | 付録 A: パッケージ化および配置の追加情報 | 付録 B: パッケージ化および配置用のツール