Compartilhar via


Como: Criar uma diretiva de editor

Os fornecedores de módulos (assemblies) podem indicar que os aplicativos devem usar uma versão mais recente de um assembly, incluindo um arquivo de política do publisher com o assembly atualizado. O arquivo de diretiva de editor Especifica as configurações de base de código e redirecionamento de assembly e usa o mesmo formato como um arquivo de configuração do aplicativo. O arquivo de diretiva de Editor é compilado em um assembly e colocado no cache global de assemblies.

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

  1. Crie um arquivo de diretiva de editor.

  2. Crie um assembly de diretiva de editor.

  3. Adicione o assembly da diretiva de editor para o cache global de assemblies.

O esquema para a diretiva de Editor é descrito em Redirecionando versões de montagem. O exemplo a seguir mostra um editor de arquivo de diretiva que redireciona uma versão do myAssembly para outro.

<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 da diretiva de editor

Use o O vinculador do Assembly (Al.exe) para criar o assembly da diretiva de editor.

Para criar um assembly de diretiva de 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 diretiva de editor.

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

      diretiva.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 diretiva de editor com o mesmo par de chaves.

    • O processorArchitecture argumento identifica a plataforma de destino de um assembly de processador específico. Ele pode ser amd64, ia64, msil ou x86.

      Observação

    A capacidade de direcionar uma arquitetura de processador específico é nova na.NET Framework versão 2.0.

    O comando a seguir cria um assembly de diretiva de editor chamado policy.1.0.myAssembly de um arquivo de diretiva de editor chamado pub.config, atribui um nome forte para o assembly usando o par de chaves de sgKey.snk de arquivo e especifica que o assembly é destinado a arquitetura de processador x86 de x.

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

    O assembly da diretiva de editor deve coincidir com a arquitetura do processador do que ele se aplica ao assembly. Assim, se o seu conjunto possui um ProcessorArchitecture valor de MSIL, o assembly da diretiva de editor para o assembly deve ser criado com /platform:anycpu. Você deve fornecer um separado assembly de diretiva de editor para cada conjunto de processador específico.

    Uma conseqüê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 você pode fornecer um novo assembly de diretiva de editor com a arquitetura de processador correto. O assembly de diretiva antigo do publisher não pode atender seu assembly depois que seu conjunto possui uma arquitetura de processador diferente.

    Outra conseqüência é que o vinculador versão 2.0 não pode ser usado para criar um assembly de diretiva para um assembly compilado usando versões anteriores do publisher a.NET Framework, pois ele sempre Especifica a arquitetura do processador.

Adicionando o Assembly da diretiva de editor para o Cache Global de assemblies

Use o o ferramenta Global Assembly Cache (Gacutil. exe) para adicionar o assembly da diretiva de editor para o cache global de assemblies.

Para adicionar o assembly da diretiva de editor para o cache global de assemblies

  • Digite o seguinte comando no prompt de comando:

    gacutil /i publisherPolicyAssemblyFile

    O comando a seguir adiciona policy.1.0.myAssembly.dll para o cache global de assemblies.

    gacutil /i policy.1.0.myAssembly.dll
    

    Observação

    O assembly da diretiva de editor não pode ser adicionado ao cache global de assemblies, a menos que o arquivo de diretiva de editor original está localizado no mesmo diretório do assembly.

Consulte também

Referência

Esquema configurações Runtime

Conceitos

Como o Runtime Localiza Assemblies

Redirecionando as versões do Assembly

Outros recursos

Programação com assemblies

Configuration Files

Configurando aplicativos

Esquema do arquivo de configuração para o.NET Framework