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