Поделиться через


Частичные ссылки на сборки и параллельное выполнение

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

Чтобы снизить возможную опасность от частичных ссылок на сборки, при их применении в коде, можно использовать элемент <qualifyAssembly> в файле конфигурации приложения, который полностью уточняет имеющиеся в коде частичные ссылки на сборки. При использовании элемента <qualifyAssembly> следует указывать только те поля, которые не указаны в частичной ссылке. Удостоверение сборки, содержащееся в атрибуте fullName, должно содержать все сведения, необходимые для полного уточнения имени сборки: имя, открытый ключ, язык и региональные параметры и версию.

Следующий пример демонстрирует запись в файле конфигурации приложения, которая полностью уточняет имя сборки с именем 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")".

ПримечаниеПримечание

Для обхода ограничения среды CLR, запрещающего загружать сборки с частичными ссылками из глобального кэша сборок, можно использовать метод LoadWithPartialName.Этот метод следует использовать только в сценариях удаленного взаимодействия, так как он может привести к проблемам при параллельном выполнении.

См. также

Основные понятия

Сборки в среде CLR

Имена сборок

Параллельное выполнение