部分限定アセンブリ参照と side-by-side 実行
部分限定アセンブリ参照は、side-by-side 実行の潜在的な問題の原因となり得るので、アプリケーション ディレクトリ内のアセンブリへのバインドだけで使用します。開発するコード内では、部分限定アセンブリ参照は使用しないでください。
コード内の部分限定アセンブリ参照を軽減するには、アプリケーション構成ファイルで <qualifyAssembly> 要素を使用し、コード内で発生する部分限定アセンブリ参照を完全に修飾します。<qualifyAssembly> 要素は、部分参照で設定されていないフィールドだけを指定するときに使用します。fullName 属性で指定されているアセンブリ ID には、アセンブリ名を完全に修飾するのに必要なすべての情報 (つまり、アセンブリ名、公開キー、カルチャ、およびバージョン) が含まれている必要があります。
myAssembly
というアセンブリを完全に修飾する、アプリケーション構成ファイルのエントリの例を次に示します。
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="myAssembly"
fullName="myAssembly,
version=1.0.0.0,
publicKeyToken=...,
culture=neutral"/>
</assemblyBinding>
アセンブリの読み込みステートメントが myAssembly
を参照するたびに、構成ファイルのこれらの設定により、ランタイムは部分修飾された myAssembly
参照を完全限定参照に自動的に変換します。たとえば、Assembly.Load("myAssembly") は Assembly.Load("myAssembly, version=1.0.0.0, publicKeyToken=..., culture=neutral") に変換されます。
![]() |
---|
LoadWithPartialName メソッドを使用すると、グローバル アセンブリ キャッシュから部分参照アセンブリを読み込むのを禁止する共通言語ランタイムの制限をバイパスできます。このメソッドは、side-by-side 実行で問題になりやすいので、リモート処理のシナリオだけで使用してください。 |