次の方法で共有


アセンブリの場所の指定

この記事は .NET Framework に固有のものです。 .NET 6 以降のバージョンを含む、.NET の新しい実装には適用されません。

アセンブリの場所を指定するには、次の 2 つの方法があります。

.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>

バージョン属性はすべての厳密な名前付きアセンブリに必要ですが、厳密な名前のないアセンブリでは省略する必要があります。 <codeBase> 要素には href 属性が必要です。 <codeBase> 要素でバージョン範囲を指定することはできません。

厳密な名前を持たないアセンブリにコード ベース ヒントを指定する場合、ヒントはアプリケーション ベースまたはアプリケーション ベース ディレクトリのサブディレクトリを指す必要があります。

<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 で指定するディレクトリは、アプリケーション ベース ディレクトリのサブディレクトリである必要があります。

こちらも参照ください