Partilhar via


Como: Criar uma política do Publisher

Nota

Este artigo é específico do .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.

Os fornecedores de assemblies podem afirmar que os aplicativos devem usar uma versão mais recente de um assembly incluindo um arquivo de política do editor com o assembly atualizado. O arquivo de política do editor especifica o redirecionamento de assembly e as configurações de base de código e usa o mesmo formato de um arquivo de configuração de aplicativo. O arquivo de política do editor é compilado em um assembly e colocado no cache de assembly global.

Há três etapas envolvidas na criação de uma política de editor:

  1. Crie um arquivo de política do editor.

  2. Crie um assembly de política do editor.

  3. Adicione o assembly de política do editor ao cache de assembly global.

O esquema para a política do editor é descrito em Redirecionando versões de assembly. O exemplo a seguir mostra um arquivo de política do editor que redireciona uma versão para myAssembly outra.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="myAssembly"
                           publicKeyToken="32ab4ba45e0a69a1"
                           culture="en-us" />
         <!-- Redirecting to version 2.0.0.0 of the assembly. -->
         <bindingRedirect oldVersion="1.0.0.0"
                          newVersion="2.0.0.0"/>
       </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

Para saber como especificar uma base de código, consulte Especificando o local de um assembly.

Criando o assembly de políticas do Publisher

Use o Assembly Linker (Al.exe) para criar o assembly de política do editor.

Para criar um assembly de política do editor

Digite o seguinte comando no prompt de comando:

al /link:publisherPolicyFile /out:publisherPolicyAssemblyFile /keyfile:keyPairFile /platform:processorArchitecture

Neste comando:

  • O publisherPolicyFile argumento é o nome do arquivo de política do editor.

  • O publisherPolicyAssemblyFile argumento é o nome do assembly de política do editor que resulta desse comando. O nome do arquivo assembly deve seguir o formato:

    'policy.majorNumber.minorNumber.mainAssemblyName.dll'

  • O keyPairFile argumento é o nome do arquivo que contém o par de chaves. Você deve assinar o assembly e o assembly de política do editor com o mesmo par de chaves.

  • O processorArchitecture argumento identifica a plataforma alvo de um assembly específico do processador.

    Nota

    A capacidade de direcionar uma arquitetura de processador específica está disponível a partir do .NET Framework 2.0.

A capacidade de direcionar uma arquitetura de processador específica está disponível a partir do .NET Framework 2.0. O comando a seguir cria um assembly de política do publisher chamado policy.1.0.myAssembly a partir de um arquivo de política do publisher chamado pub.config, atribui um nome forte ao assembly usando o par de chaves no sgKey.snk arquivo e especifica que o assembly tem como alvo a arquitetura do processador x86.

al /link:pub.config /out:policy.1.0.myAssembly.dll /keyfile:sgKey.snk /platform:x86

O assembly de política do editor deve corresponder à arquitetura do processador do assembly ao qual ele se aplica. Assim, se o assembly tiver um ProcessorArchitecture valor de , o assembly de política do MSILeditor para esse assembly deverá ser criado com /platform:anycpu. Você deve fornecer um assembly de política de editor separado para cada assembly específico do processador.

Uma consequência dessa regra é que, para alterar a arquitetura do processador para um assembly, você deve alterar o componente principal ou secundário do número da versão, para que possa fornecer um novo assembly de política do editor com a arquitetura de processador correta. O assembly de política do editor antigo não pode fazer a manutenção do assembly quando o assembly tiver uma arquitetura de processador diferente.

Outra consequência é que o vinculador da versão 2.0 não pode ser usado para criar um assembly de política de editor para um assembly compilado usando versões anteriores do .NET Framework, porque ele sempre especifica a arquitetura do processador.

Adicionando o assembly de políticas do Publisher ao cache de assembly global

Use a ferramenta Global Assembly Cache (Gacutil.exe) para adicionar o assembly de política do editor ao cache de assembly global.

Para adicionar o assembly de política do editor ao cache de assembly global

Digite o seguinte comando no prompt de comando:

gacutil /i publisherPolicyAssemblyFile

O comando a seguir adiciona policy.1.0.myAssembly.dll ao cache de assembly global.

gacutil /i policy.1.0.myAssembly.dll

Importante

O assembly de política do editor não pode ser adicionado ao cache de assembly global, a menos que o arquivo de política do editor original especificado no /link argumento esteja localizado no mesmo diretório do assembly.

Consulte também