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 uma 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 é chamado de configuração do editor. Para obter mais informações sobre esse tipo de configuração , consulte 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 | Obrigatório |
---|---|---|
assembly | Sim | |
manifestVersion | Sim | |
assemblyIdentity | Sim | |
tipo | Sim | |
name | Sim | |
linguagem | Não | |
Processorarchitecture | Não | |
version | Sim | |
publicKeyToken | Não | |
Dependência | Não | |
dependentAssembly | Não | |
bindingRedirect | Sim | |
oldVersion | Sim | |
newVersion | Sim |
Localização do arquivo
Os arquivos de configuração do publicador devem ser instalados na pasta WinSxS. Normalmente, eles 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 a política de formulário. major. menor. assemblyname em que major e minor se referem às partes principais e secundárias da versão do assembly que está sendo afetada. O nome do assembly refere-se ao nome do assembly.
Por exemplo, um arquivo de configuração do editor para a versão 6.0 do assembly Microsoft.Windows.Common-Controls 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 container. Seu primeiro subelemento deve ser uma assemblyIdentity. Obrigatórios.
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 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 assembly , o assemblyIdentity descreve o assembly lado a lado que está tendo uma ou mais 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, o assemblyIdentity a seguir altera qualquer dependência em Microsoft.Windows.SampleAssembly versão 2.0.0.0 para uma dependência em 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. Obrigatórios. No assemblyIdentity para o assembly que está sendo afetado, o valor do atributo de tipo 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 atributo de tipo deve ser definido como win32. O valor win32 deve estar em todas as letras minúsculas.name Nomeia exclusivamente um assembly. Obrigatórios. No assemblyIdentity para o assembly que está sendo afetado, o nome tem a política de formulário. major. menor. assemblyname em que major e minor se referem às partes principal e secundária da 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.linguagem 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. version Especifica a versão do assembly. Use a sintaxe de versão de quatro partes: mmmm.nnnn.oooo.pppp Obrigatório somente na assemblyIdentity de contexto DEF. Não especifique o atributo de versão no assemblyIdentity ref-context. 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, confira Exemplo de assinatura de assembly e criação de arquivos e catálogos assinados. -
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 uma 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. Obrigatórios. newVersion Especifica a versão do assembly de substituição. Use a sintaxe de versão de quatro partes nnnnn.nnnnn.nnnnn.nnnnn.
Comentários
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>