アセンブリの場所の指定
Note
この記事は .NET Framework に固有のものです。 .NET 6 以降のバージョンを含めて、.NET の新しい実装には適用されません。
アセンブリの場所を指定するには、次の 2 つの方法があります。
<codeBase> 要素を使用する。
<probing> 要素を使用する。
.NET Framework 構成ツール (Mscorcfg.msc) を使用して、アセンブリの場所を指定したり、共通言語ランタイムがアセンブリをプローブする場所を指定したりすることもできます。
<codeBase> 要素を使用する
<codeBase> 要素は、アセンブリ バージョンのリダイレクトも行われるマシン構成ファイルまたは発行者ポリシー ファイルでのみ使用できます。 ランタイムでは、使用するアセンブリ バージョンが確認されると、バージョンを決定するファイルのコード ベース設定が適用されます。 コード ベースが指定されていない場合、ランタイムは通常の方法でアセンブリをプローブします。 詳しくは、「ランタイムがアセンブリを検索する方法」をご覧ください。
次の例は、アセンブリの場所の指定方法を示したものです。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<codeBase version="2.0.0.0"
href="http://www.litwareinc.com/myAssembly.dll"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
version 属性は、すべての厳密な名前付きアセンブリに対して必須ですが、厳密な名前付きではないアセンブリについては、省略する必要があります。 <codeBase> 要素では、href 属性が必須です。 <codeBase> 要素でバージョン範囲を指定することはできません。
Note
厳密な名前付きではないアセンブリに対してコード ベース ヒントを指定する場合、ヒントはアプリケーション ベースか、アプリケーション ベース ディレクトリのサブディレクトリをポイントする必要があります。
<probing> 要素を使用する
ランタイムでは、コード ベースのないアセンブリはプローブによって検索されます。 プローブについて詳しくは、「ランタイムがアセンブリを検索する方法」をご覧ください。
<probing> 要素をアプリケーション構成ファイルで使用すると、アセンブリの検索時にランタイムでどのサブディレクトリを検索するかを指定できます。 次の例は、ランタイムで検索するディレクトリの指定方法を示したものです。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin;bin2\subbin;bin3"/>
</assemblyBinding>
</runtime>
</configuration>
privatePath 属性には、ランタイムでのアセンブリ検索の対象となるディレクトリが格納されます。 アプリケーションが C:\Program Files\MyApp に配置されている場合、ランタイムは、C:\Program Files\MyApp\Bin、C:\Program Files\MyApp\Bin2\Subbin、および C:\Program Files\MyApp\Bin3 でコード ベースが指定されていないアセンブリを検索します。 privatePath で指定されたディレクトリは、アプリケーション ベース ディレクトリのサブディレクトリである必要があります。
関連項目
.NET