アセンブリの場所の指定Specifying an Assembly's Location

アセンブリの場所を指定するには、次の2つの方法があります。There are two ways to specify an assembly's location:

また、 .NET Framework 構成ツール (mscorcfg.msc)を使用して、アセンブリの場所を指定したり、共通言語ランタイムがアセンブリをプローブする場所を指定したりすることもできます。You can also use the .NET Framework Configuration Tool (Mscorcfg.msc) to specify assembly locations or specify locations for the common language runtime to probe for assemblies.

コードベース<の > 要素の使用Using the <codeBase> Element

<コードベース > 要素は、アセンブリのバージョンをリダイレクトするマシン構成または発行者ポリシーファイルでのみ使用できます。You can use the <codeBase> element only in machine configuration or publisher policy files that also redirect the assembly version. 使用するアセンブリバージョンをランタイムが決定すると、バージョンを決定するファイルのコードベース設定が適用されます。When the runtime determines which assembly version to use, it applies the code base setting from the file that determines the version. コードベースが指定されていない場合、ランタイムは通常の方法でアセンブリをプローブします。If no code base is indicated, the runtime probes for the assembly in the normal way. 詳細については、「ランタイムがアセンブリを検索する方法」を参照してください。For details, see How the Runtime Locates Assemblies.

アセンブリの場所を指定する方法を次の例に示します。The following example shows how to specify an assembly's location.

<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属性は、厳密な名前を持つすべてのアセンブリに必要ですが、厳密な名前ではないアセンブリでは省略する必要があります。The version attribute is required for all strong-named assemblies but should be omitted for assemblies that are not strong-named. <CodeBase> 要素が必要です、 href 属性。The <codeBase> element requires the href attribute. コードベースの > 要素で < バージョン範囲を指定することはできません。You cannot specify version ranges in the <codeBase> element.

注意

厳密な名前が付けられていないアセンブリのコードベースヒントを指定する場合、ヒントはアプリケーションベースディレクトリのアプリケーションベースまたはサブディレクトリをポイントする必要があります。If you are supplying a code base hint for an assembly that is not strong-named, the hint must point to the application base or a subdirectory of the application base directory.

プローブ > <要素の使用Using the <probing> Element

実行時に、プローブによってコードベースのないアセンブリが検索されます。The runtime locates assemblies that do not have a code base by probing. プローブの詳細については、「ランタイムがアセンブリを検索する方法」を参照してください。For more information about probing, see How the Runtime Locates Assemblies.

アプリケーション構成ファイルの <プローブ >要素を使用して、アセンブリを検索するときにランタイムが検索する必要があるサブディレクトリを指定できます。You can use the <probing> element in the application configuration file to specify subdirectories the runtime should search when locating an assembly. 次の例は、ランタイムが検索するディレクトリを指定する方法を示しています。The following example shows how to specify directories the runtime should search.

<configuration>  
   <runtime>  
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
         <probing privatePath="bin;bin2\subbin;bin3"/>  
      </assemblyBinding>  
   </runtime>  
</configuration>  

PrivatePath属性には、ランタイムがアセンブリを検索するディレクトリが含まれています。The privatePath attribute contains the directories that the runtime should search for assemblies. アプリケーションが C:\Program Files\MyApp に配置されている場合、ランタイムは C:\Program Files\MyApp\Bin、C:\Program Files\MyApp\Bin2\Subbin、および C:\Program Files\MyApp\Bin3. でコードベースを指定していないアセンブリを検索します。If the application is located at C:\Program Files\MyApp, the runtime will look for assemblies that do not specify a code base in C:\Program Files\MyApp\Bin, C:\Program Files\MyApp\Bin2\Subbin, and C:\Program Files\MyApp\Bin3. PrivatePathに指定されたディレクトリは、アプリケーションのベースディレクトリのサブディレクトリである必要があります。The directories specified in privatePath must be subdirectories of the application base directory.

関連項目See also