Определение расположения сборки

Замечание

Эта статья связана с .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.

Существует два способа указать расположение сборки:

Вы также можете использовать средство настройки платформы .NET Framework (Mscorcfg.msc), чтобы указать расположения сборок или указать расположения для среды CLR для проверки сборок.

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

Замечание

Если вы предоставляете базовое указание кода для сборки, которая не имеет строгого имени, указание должно указывать на базу приложения или подкаталог базового каталога приложения.

<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 , должны быть подкаталогами базового каталога приложения.

См. также