файлы конфигурации Publisher

Файл конфигурации издателя — это XML-файл, который глобально перенаправляет приложения и сборки из одной версии параллельной сборки в другую версию той же сборки. Как правило, издатель сборки выдает совместимое обновление или исправление безопасности для каждой сборки путем выдачи файла конфигурации издателя для установки вместе с обновлением пакета обновления. Это называется конфигурацией издателя. Дополнительные сведения об этом типе конфигурации см. в разделе Publisher Configuration.

Publisher файлы конфигурации имеют следующие элементы и атрибуты. Полный список схемы XML см. в разделе Publisher схема файла конфигурации.

Элемент Атрибуты Обязательно
Сборки Да
manifestVersion Да
assemblyIdentity Да
type Да
name Да
language Нет
processorArchitecture Нет
version Да
Publickeytoken Нет
Зависимостей Нет
dependentAssembly Нет
bindingRedirect Да
oldVersion Да
newVersion Да

Расположение файла

Publisher файлы конфигурации должны быть установлены в папке WinSxS. Они обычно устанавливаются как отдельный файл, но файлы конфигурации издателя также могут быть включены в виде ресурса в библиотеку DLL. Файл конфигурации издателя не может быть включен в качестве ресурса в EXE-файл. EXE-файл может включать манифест приложения в качестве ресурса.

Синтаксис имени файла

Имя файла конфигурации издателя имеет политику формы. майор. дополнительный. имя сборки , где основной и дополнительный относятся к основным и дополнительным частям версии сборки , на которые распространяется влияние. Имя сборки ссылается на имя сборки.

Например, файл конфигурации издателя для версии 6.0 корпорации Майкрософт. Windows. Сборка Common-Controls будет иметь следующее имя:

policy.6.0.Microsoft. Windows. Общие элементы управления

Не используйте файлы конфигурации политики для увеличения основной или дополнительной версии сборки. Например, не перенаправляйте версию 6.0.0.0 на 7.0.0.0 или 6.1.0.0. Если приложение ссылается на версию сборки, например 6.0.0.0, параллельно проверяет наличие файлов конфигурации политики с указанными основными и дополнительными версиями, например 6.0. Затем приложение перенаправляется в другую версию сборки, например 6.0.1.0. Если файл конфигурации издателя увеличивает основную или дополнительную версию сборки, последующее перенаправление сборки может потребовать выдачи нескольких файлов конфигурации политики.

Элементы

Сборки

Элемент контейнера. Его первым подэлементом должен быть assemblyIdentity. Обязательный элемент.

Элемент сборки должен находиться в пространстве имен urn:schemas-microsoft-com:asm.v1. Дочерние элементы сборки также должны находиться в этом пространстве имен путем наследования или путем добавления тегов.

Элемент сборки имеет следующие атрибуты.

attribute Описание:
manifestVersion Атрибут manifestVersion должен иметь значение 1.0.

assemblyIdentity

Описывает и однозначно идентифицирует параллельную сборку.

В качестве первого подэлемента элемента сборкисвойство assemblyIdentity описывает параллельную сборку, которая изменяет одну или несколько зависимостей сборки. Файл конфигурации издателя перенаправляет зависимости определенной сборки. Например, следующая assemblyIdentity указывает, что файл конфигурации издателя влияет на зависимости microsoft x86. Windows. Сборка pop 6.0.0.0.

<assemblyIdentity 
     type="win32-policy" 
     publicKeyToken="0000000000000000" 
     name="policy.6.0.Microsoft.Windows.Pop" 
     version="2.1.0.0" 
     processorArchitecture="x86"/>

В качестве первого подэлемента элемента dependAssemblyassemblyIdentity описывает зависимость параллельной сборки. Файл конфигурации издателя перенастраивает удостоверение этой необходимой параллельной сборки. Изменение указывается в bindingRedirect. Например, следующая сборка AssemblyIdentity изменяет любую зависимость от корпорации Майкрософт. Windows. SampleAssembly версии 2.0.0.0 к зависимости от корпорации Майкрософт. Windows. SampleAssembly версии 2.0.1.0.

<dependency>
      <dependentAssembly>
         <assemblyIdentity 
type="win32" 
name="Microsoft.Windows.SampleAssembly"  
processorArchitecture="x86"
publicKeyToken="0000000000000000"/>
         <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
      </dependentAssembly>
</dependency>

Элемент assemblyIdentity имеет следующие атрибуты. У него нет вложенных элементов.

attribute Описание
type Указывает тип сборки. Обязательный элемент. В свойстве assemblyIdentity для затронутой сборки значение атрибута типа должно иметь значение win32-policy. Значение win32-policy должно находиться во всех строчных буквах.
В assemblyIdentity для изменяющейся зависимости сборки значение атрибута типа должно иметь значение win32. Значение win32 должно быть во всех строчных буквах.
name Уникальное имя сборки. Обязательный элемент. В объекте assemblyIdentity для затронутой сборки имя имеет политику формы. майор. дополнительный. имя сборки , где основной и дополнительный относятся к основным и дополнительным частям версии сборки.
В assemblyIdentity для изменяющейся зависимости сборки имя имеет форму Organization.Division.Name. Например, корпорация Майкрософт. Windows. MysampleApp.
language Определяет язык сборки. Необязательный элемент. Если сборка зависит от языка, укажите код языка DHTML в файле assemblyIdentity для затронутой сборки. Если сборка используется по всему миру (нейтрализовать язык), пропустите этот атрибут.
В assemblyIdentity для изменяющейся зависимости сборки, если сборка зависит от языка, укажите код языка DHTML. Если сборка используется во всем мире (нейтрализовать язык), задайте значение "*".
processorArchitecture Указывает процессор, выполняющий приложение.
version Указывает версию сборки. Используйте синтаксис четырехкомпонентной версии: mmmm.nnnn.pppp Required только в параметре DEF-context assemblyIdentity. Не указывайте атрибут версии в свойстве REF-context assemblyIdentity.
Publickeytoken Шестнадцатеричная строка длиной 16 символов, представляющая последние 8 байт хэша SHA-1 открытого ключа, под которым подписывается сборка. Открытый ключ, используемый для подписи каталога, должен иметь значение 2048 бит или больше. Для всех параллельных сборок требуется publicKeyToken. Значение publicKeyToken, используемое для файла конфигурации издателя, должно совпадать с ключом, используемым для подписанной сборки. Publisher файлы конфигурации можно подписать с помощью того же средства, что и для сборок, см. пример подписывания сборок и создание подписанных файлов и каталогов.

Зависимостей

Необязательный элемент контейнера для хотя бы одного зависимогоAssembly. Он не имеет атрибутов.

dependentAssembly

Каждый зависимыйAssembly должен находиться в одной зависимости. ЗависимыйAssembly не имеет атрибутов. Первым подэлементом зависимойAssembly должен быть assemblyIdentity для параллельной сборки, перенастроенной конфигурацией издателя.

bindingRedirect

Элемент bindingRedirect содержит сведения о перенаправлении для привязки сборки.

Этот элемент содержит атрибуты, показанные в следующей таблице.

attribute Описание:
oldVersion Указывает версию сборки, переопределяемую и перенаправляемую. Используйте синтаксис четырехкомпонентной версии nnnnn.nnnnn.nnnnn.nnnnn.nnnnn. Укажите диапазон версий дефисом без пробелов. Например, 2.14.3.0 или 2.14.3.0 2.16.0.0. Обязательный элемент.
newVersion Указывает версию замены сборки. Используйте синтаксис четырех частей версии nnnnn.nnnnn.nnnnn.nnnnn.nnnnn.

Remarks

Publisher файлы конфигурации не указывают файлы. Обратите внимание, что файлы политики для конкретного языка отделены от файла конфигурации издателя.

Пример

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32-policy" publicKeyToken="0000000000000000" name="policy.6.0.Proseware.Research.SampleAssembly" version="1.0.1.0" language="en-us" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" publicKeyToken="0000000000000000" name="Proseware.Research.SampleAssembly" language="en-us" processorArchitecture="x86"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.1.0"/>
</dependentAssembly>
</dependency>
</assembly>