Compartilhar via


Arquivos de Configuração do Publicador

Um arquivo de configuração do editor é um arquivo XML que redireciona globalmente aplicativos e assemblies do uso de uma versão de um assembly lado a lado para outra versão do mesmo assembly. Normalmente, o editor do assembly emite uma atualização compatível ou correção de segurança por assembly, emitindo um arquivo de configuração do editor a ser instalado junto com uma atualização do service pack. Isso é conhecido como de configuração do editor. Para obter mais informações sobre esse tipo de configuração de consulte a Configuração do Publicador.

Os arquivos de configuração do publicador têm os seguintes elementos e atributos. Para obter uma listagem completa do esquema XML, consulte esquema de arquivo de configuração do publicador.

Elemento Atributos Necessário
assembly Sim
manifestVersion Sim
assemblyIdentity Sim
tipo Sim
nome Sim
idioma Não
processorArchitecture Não
versão Sim
publicKeyToken Não
de dependência Não
dependentAssembly Não
bindingRedirect Sim
oldVersion Sim
newVersion Sim

Local do arquivo

Os arquivos de configuração do publicador devem ser instalados na pasta WinSxS. Eles geralmente são instalados como um arquivo separado, mas os arquivos de configuração do editor também podem ser incluídos como um recurso em uma DLL. Um arquivo de configuração do editor não pode ser incluído como um recurso em um arquivo EXE. Um arquivo EXE pode incluir um manifesto do aplicativo como um recurso.

Sintaxe do nome do arquivo

O nome do arquivo de um arquivo de configuração do editor tem o formulário de política.grande.secundária.nome do assembly em que principais e secundárias referem-se às partes principais e secundárias da versão do assembly que está sendo afetada. O assemblyname refere-se ao nome do assembly.

Por exemplo, um arquivo de configuração do editor para a versão 6.0 do Microsoft.Windows.Common-Controls assembly teria o seguinte nome:

policy.6.0.Microsoft.Windows.Common-Controls

Não use arquivos de configuração de política para incrementar a versão principal ou secundária de um assembly. Por exemplo, não redirecione a versão 6.0.0.0 para 7.0.0.0 ou 6.1.0.0. Quando um aplicativo faz referência a uma versão de assembly, como 6.0.0.0, verifica lado a lado a presença de arquivos de configuração de política com as versões principais e secundárias especificadas, por exemplo, 6.0. Em seguida, o aplicativo é redirecionado para outra versão do assembly, por exemplo, 6.0.1.0. Se um arquivo de configuração do editor incrementar a versão principal ou secundária de um assembly, o redirecionamento subsequente do assembly poderá exigir a emissão de vários arquivos de configuração de política.

Elementos

assembly

Um elemento de contêiner. Seu primeiro subelemento deve ser um assemblyIdentity. Necessário.

O elemento assembly deve estar no namespace urn:schemas-microsoft-com:asm.v1. Os elementos filho do assembly também devem estar nesse namespace, por herança ou marcação.

O elemento do assembly tem os seguintes atributos.

Atributo Descrição
manifestVersion O atributo manifestVersion deve ser definido como 1.0.

assemblyIdentity

Descreve e identifica exclusivamente um assembly lado a lado.

Como o primeiro subelemento de um elemento de assembly, o assemblyIdentity descreve o assembly lado a lado que está tendo uma ou mais de suas dependências de assembly alteradas. O arquivo de configuração do editor redireciona as dependências do assembly identificado. Por exemplo, o assemblyIdentity a seguir indica que o arquivo de configuração do editor afeta as dependências do assembly x86 Microsoft.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"/>

Como o primeiro subelemento de um elemento dependentAssembly, assemblyIdentity descreve uma dependência de assembly lado a lado. O arquivo de configuração do editor reconfigura a identidade desse assembly lado a lado necessário. A alteração é especificada em um bindingRedirect. Por exemplo, a assemblyIdentity altera qualquer dependência do Microsoft.Windows.SampleAssembly versão 2.0.0.0 para uma dependência do Microsoft.Windows.SampleAssembly versão 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>

O elemento assemblyIdentity tem os seguintes atributos. Ele não tem subconjuntos.

Atributo Descrição
tipo Especifica o tipo de assembly. Necessário. No assemblyIdentity para o assembly que está sendo afetado, o valor do tipo atributo deve ser definido como win32-policy. O valor win32-policy deve estar em todas as letras minúsculas.
No assemblyIdentity para a dependência de assembly em alteração, o valor do tipo atributo deve ser definido como win32. O valor win32 deve estar em todas as letras minúsculas.
nome Nomeia exclusivamente um assembly. Necessário. No assemblyIdentity do assembly que está sendo afetado, o nome tem o formulário de política.grande.secundária.nome do assembly em que principais e secundárias referem-se às partes principais e secundárias do versão do assembly.
No assemblyIdentity para a dependência do assembly em alteração, o nome tem o formulário Organization.Division.Name. Por exemplo, Microsoft.Windows.MysampleApp.
idioma Identifica o idioma do assembly. Opcional. No assemblyIdentity para o assembly que está sendo afetado, se o assembly for específico do idioma, especifique o código de linguagem DHTML. Se o assembly for para uso mundial (idioma neutro), omita esse atributo.
No assemblyIdentity para a dependência de assembly em alteração, se o assembly for específico do idioma, especifique o código de linguagem DHTML. Se o assembly for para uso mundial (idioma neutro) defina o valor como "*".
processorArchitecture Especifica o processador que executa o aplicativo.
versão Especifica a versão do assembly. Use a sintaxe de versão de quatro partes: mmmm.nnnn.oooo.pppp Obrigatório somente no assemblyIdentityde contexto DEF. Não especifique o atributo de versão no assemblyIdentityde contexto REF.
publicKeyToken Uma cadeia de caracteres hexadecimal de 16 caracteres que representa os últimos 8 bytes do hash SHA-1 da chave pública sob a qual o assembly é assinado. A chave pública usada para assinar o catálogo deve ter 2.048 bits ou mais. Um publicKeyToken é necessário para todos os assemblies lado a lado compartilhados. O publicKeyToken usado para o arquivo de configuração do editor deve ser a mesma chave usada para o assembly assinado. Os arquivos de configuração do Publicador podem ser assinados usando as mesmas ferramentas usadas com assemblies, consulte de Exemplo de Assinatura de Assembly e Criando Arquivos e Catálogos Assinados.

de dependência

Um elemento de contêiner opcional para pelo menos um dependentAssembly. Ele não tem atributos.

dependentAssembly

Cada dependentAssembly deve estar dentro exatamente de uma dependência . Um dependentAssembly não tem atributos. O primeiro subelemento de dependentAssembly deve ser um assemblyIdentity para o assembly lado a lado que está sendo reconfigurado pela configuração do editor.

bindingRedirect

O elemento bindingRedirect contém informações de redirecionamento para a associação do assembly.

Esse elemento tem os atributos mostrados na tabela a seguir.

Atributo Descrição
oldVersion Especifica a versão do assembly que está sendo substituída e redirecionada. Use a sintaxe de versão de quatro partes nnnnn.nnnnn.nnnnn.nnnnn.nnnnn. Especifique um intervalo de versões por um traço sem espaços. Por exemplo, 2.14.3.0 ou 2.14.3.0 2.16.0.0. Necessário.
newVersion Especifica a versão do assembly de substituição. Use a sintaxe de versão de quatro partes nnnnn.nnnnn.nnnnn.nnnnn.nnnnn.

Observações

Os arquivos de configuração do publicador não especificam arquivos. Observe que os arquivos de política específicos do idioma são separados do arquivo de configuração do editor.

Exemplo

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