.NET Framework アセンブリ統合の概要
更新 : 2007 年 11 月
.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 バージョンの指定」を参照してください。 |