アセンブリ バインディングのリダイレクトの構成
Note
この記事は .NET Framework に固有のものです。 .NET 6 以降のバージョンを含めて、.NET の新しい実装には適用されません。
既定では、アプリケーションは、アプリケーションのコンパイルに使用したランタイム バージョンと共に出荷された .NET Framework アセンブリのセットを使用します。 アプリケーション構成ファイルで .NET Framework アセンブリの特定のバージョンのアセンブリ バインディング参照をリダイレクトするには <assemblyBinding> 要素の appliesTo 属性を使用できます。 このオプションの属性は、.NET Framework のバージョン番号を使用して、どのバージョンに適用するのかを示します。 appliesTo 属性が指定されていない場合、<assemblyBinding> 要素は、.NET Framework のすべてのバージョンに適用されます。
appliesTo 属性は .NET Framework バージョン 1.1 で導入されたものであり、.NET Framework バージョン 1.0 では無視されます。 これは、appliesTo 属性が指定されている場合でも、.NET Framework バージョン 1.0 を使用している場合は <assemblyBinding> のすべての要素が適用されることを意味します。
Note
appliesTo 属性は、アセンブリ バインディングのリダイレクトをランタイムの特定のバージョンに制限するために使用します。
たとえば、.NET Framework Version 1.0 アセンブリのアセンブリ バインディングをリダイレクトするには、アプリケーション構成ファイルに次の XML コードを追加します。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v1.0.3705">
<dependentAssembly>
* assembly information goes here *
</dependentAssembly>
</assemblyBinding>
</runtime>
<assemblyBinding> 要素は、順番が区別されます。 最初に .NET Framework Version 1.0 のアセンブリのアセンブリ バインディング リダイレクト情報を入力し、その次に .NET Framework Version 1.1 のアセンブリのアセンブリ バインディング リダイレクト情報を入力します。 最後に、 appliesTo 属性を使用せず、すべてのバージョンの .NET Framework に適用される .NET Framework アセンブリ リダイレクトのアセンブリ バインディング リダイレクト情報を入力します。 リダイレクトで矛盾が発生した場合は、構成ファイル内で最初に一致したリダイレクト ステートメントが使用されます。
たとえば、ある参照を .NET Framework Version 1.0 のアセンブリにリダイレクトし、別の参照を .NET Framework Version 1.1 のアセンブリにリダイレクトするには、次の擬似コードに示すパターンを使用します。
<assemblyBinding xmlns="..." appliesTo="v1.0.3705">
<!-- .NET Framework version 1.0 redirects here. -->
</assemblyBinding>
<assemblyBinding xmlns="..." appliesTo="v1.1.4322">
<!-- .NET Framework version 1.1 redirects here. -->
</assemblyBinding>
<assemblyBinding xmlns="...">
<!-- Redirects meant for all versions of the .NET Framework. -->
</assemblyBinding>
構成ファイル エラーのデバッグ
ランタイムは、アプリケーション ドメインが作成されるときに構成ファイルを一度解析し、コードをアプリケーション ドメインに読み込みます。 共通言語ランタイムは、エントリを無視することによって構成ファイルに含まれるエラーを処理します。 構成ファイルに不正な XML が含まれる場合、ランタイムは構成ファイル全体を無視します。 無効な XML に対しては、無効なセクションだけを無視します。
アセンブリ バインディングのリダイレクトが発生しているかどうかを調べることによって、構成ファイルが使用されているかどうかを判断できます。 アセンブリ バインディング ログ ビューアー (Fuslogvw.exe) を使用して、読み込まれたアセンブリを調べます。 すべてのアセンブリ バインドを見るには、レジストリで ForceLog のエントリを設定する必要があります。
関連項目
.NET