共通言語ランタイムを使用するすべてのアセンブリのバージョン管理は、アセンブリ レベルで行われます。 アセンブリの特定のバージョンと依存アセンブリのバージョンは、アセンブリのマニフェストに記録されます。 ランタイムの既定のバージョン ポリシーは、構成ファイル (アプリケーション構成ファイル、発行元ポリシー ファイル、およびコンピューターの管理者構成ファイル) の明示的なバージョン ポリシーによってオーバーライドされない限り、ビルドおよびテストされたバージョンでのみアプリケーションを実行することです。
ランタイムは、アセンブリ バインド要求を解決するためにいくつかの手順を実行します。
元のアセンブリ参照をチェックして、バインドするアセンブリのバージョンを決定します。
バージョン ポリシーを適用するために、該当するすべての構成ファイルを確認します。
元のアセンブリ参照から正しいアセンブリと、構成ファイルで指定されたリダイレクトを決定し、呼び出し元のアセンブリにバインドする必要があるバージョンを決定します。
グローバル アセンブリ キャッシュ、構成ファイルで指定されたコードベースを確認し、「 ランタイムがアセンブリを検索する方法」で説明されているプローブ規則を使用して、アプリケーションのディレクトリとサブディレクトリを確認します。
次の図は、これらの手順を示しています。
アプリケーションの構成の詳細については、「アプリの 構成」を参照してください。 バインディング ポリシーの詳細については、「 ランタイムがアセンブリを検索する方法」を参照してください。
バージョン情報
各アセンブリには、バージョン情報を表す 2 つの異なる方法があります。
アセンブリのバージョン番号は、アセンブリ名とカルチャ情報と共に、アセンブリの ID の一部です。 この番号は、ランタイムによってバージョン ポリシーを適用するために使用され、実行時の型解決プロセスで重要な役割を果たします。
情報バージョン。これは、情報提供のみを目的として含まれる追加のバージョン情報を表す文字列です。
アセンブリのバージョン番号
各アセンブリには、ID の一部としてバージョン番号があります。 そのため、バージョン番号によって異なる 2 つのアセンブリは、ランタイムによって完全に異なるアセンブリと見なされます。 このバージョン番号は、次の形式の 4 部構成の文字列として物理的に表されます。
< メジャー バージョン>.<マイナー バージョン>.<ビルド番号>.<改定>
たとえば、バージョン 1.5.1254.0 はメジャー バージョンとして 1、マイナー バージョンとして 5、ビルド番号として 1254、リビジョン番号として 0 を示します。
バージョン番号は、アセンブリ 名や公開キーなどの他の ID 情報と共にアセンブリ マニフェストに格納され、アプリケーションに接続されている他のアセンブリのリレーションシップと ID に関する情報も格納されます。
アセンブリがビルドされると、開発ツールはアセンブリ マニフェストで参照されている各アセンブリの依存関係情報を記録します。 ランタイムは、これらのバージョン番号を管理者、アプリケーション、または発行元によって設定された構成情報と組み合わせて使用して、参照されるアセンブリの適切なバージョンを読み込みます。
ランタイムは、バージョン管理の目的で、通常のアセンブリと厳密な名前付きアセンブリを区別します。 バージョン チェックは、厳密な名前のアセンブリでのみ行われます。
バージョン バインディング ポリシーの指定については、「 アプリの構成」を参照してください。 ランタイムがバージョン情報を使用して特定のアセンブリを検索する方法については、「 ランタイムがアセンブリを検索する方法」を参照してください。
アセンブリの情報バージョン
情報バージョンは、情報提供のみを目的としてアセンブリに追加のバージョン情報を添付する文字列です。この情報は実行時には使用されません。 テキストベースの情報バージョンは、製品のマーケティング資料、パッケージ化、製品名に対応しており、ランタイムでは使用されません。 たとえば、情報バージョンは"共通言語ランタイム バージョン 1.0" または "NET Control SP 2" です。 Microsoft Windows の [ファイルのプロパティ] ダイアログの [バージョン] タブで、この情報が [製品バージョン] 項目に表示されます。
注
任意のテキストを指定できますが、文字列がアセンブリのバージョン番号で使用される形式でない場合、または文字列がその形式であるがワイルドカードが含まれている場合は、コンパイル時に警告メッセージが表示されます。 この警告は無害です。
情報バージョンは、カスタム属性 System.Reflection.AssemblyInformationalVersionAttributeを使用して表されます。 情報バージョン属性の詳細については、「 アセンブリ属性の設定」を参照してください。
こちらも参照ください
.NET