.NET Framework アセンブリ統合の概要

.NET Framework は、1 つのバージョンの共通言語ランタイムと、型ライブラリを構成する 24 個前後の .NET Framework アセンブリで構成されています。これらの .NET Framework アセンブリは、ランタイムによって単一のユニットとして扱われます。たとえば、.NET Framework Version 1.0 は、ランタイム バージョン 1.0.3705 と .NET Framework アセンブリ バージョン 1.0.3300.0 で構成されます。.NET Framework の特定のバージョンをサポートするアプリケーションまたはコンポーネントは、ランタイムの出荷時のバージョンおよび .NET Framework アセンブリの出荷時のバージョンと共に動作します。

既定では、プロセスに読み込まれたランタイムのバージョンに属する .NET Framework アセンブリだけをランタイムがロードします。アプリケーションを起動するとき、ランタイムによって実行されるコード内の型のすべての参照が、プロセスに読み込まれたランタイムと同じバージョン番号を持つ .NET Framework アセンブリにリダイレクトされます。この .NET Framework アセンブリの統一により、ランタイムが特別に指定しない限り、異なるバージョンの .NET Framework からアセンブリが読み込まれるのを防げます。

アセンブリの統一とコンポーネント

アプリケーションは、使用するランタイムのバージョンを決定します。統一プロセスには、アプリケーションが使用するどのコンポーネントも含まれます。アプリケーションは、使用するコンポーネントをリダイレクトして、ランタイムの特定のバージョンと共に実行することができます。ランタイムの 1 つのバージョンでコンパイルされたコンポーネントは、他のバージョンを使用するためにリダイレクトされる可能性があります。

次の図では、アプリケーション MyApp は Comp A と Comp B の 2 つのコンポーネントを使用します。MyApp と Comp A はランタイム バージョン 1.0 で作成されているので、ランタイム バージョン 1.0 への静的参照を含みます。コンポーネント Comp B は、ランタイム バージョン 1.1 と共に出荷された .NET Framework アセンブリへの静的参照を含みますが、統一のためにリダイレクトされ、ランタイム バージョン 1.0 と共に出荷された .NET Framework アセンブリと共に使用されます。

アセンブリの統一によるアセンブリ バインディングのリダイレクト

統合

アプリケーションは、どのアセンブリに対しても、バインディングのリダイレクト情報をアプリケーション構成ファイルに記述することにより、この既定の動作をオーバーライドできます。このオーバーライドによって、他の .NET Framework アセンブリの読み込み方法には影響を与えずに、特定のバージョンの .NET Framework アセンブリを使用するようにランタイムがリダイレクトされます。詳細については、「アセンブリ バインディングのリダイレクト」を参照してください。

Noteメモ :

.NET Framework Version 1.0 のアセンブリは統一されません。バージョン 1.0 以外の .NET Framework アセンブリを使用するようにランタイムに命令する唯一の方法は、<assemblyBinding> 要素に appliesTo 属性を含む構成ファイルを作成することです。バージョン 1.0 の .NET Framework アセンブリのリダイレクトの詳細については、「.NET Framework バージョンの指定」を参照してください。

参照

概念

読み込むランタイム バージョンの決定
アセンブリ バインディングのリダイレクト

その他の技術情報

side-by-side 実行の基本