Share via


Como: Criar uma diretiva de publicador

Fornecedores de módulos (assemblies) podem indicar que aplicativos devem usar uma versão mais recente de um assembly, incluindo um editor diretiva arquivo com o assembly atualizado.O arquivo de diretiva de publicador Especifica o redirecionamento de assembly e sistema autônomo configurações de base de código e usa o mesmo formato sistema autônomo um arquivo de configuração do aplicativo.O publicador diretiva arquivo é compilado em um assembly e colocado no cache global de assemblies.

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

  1. Criar um publicador diretiva arquivo.

  2. Cria um assembly de diretiva de publicador.

  3. Adicionar o assembly da diretiva de publicador para o cache global de assemblies.

Descrito o esquema para diretiva de publicadorRedirecionando a versões de assembly.O exemplo a seguir mostra um publicador de arquivo de política que redireciona uma versão de 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 Especificar localização de um assembly.

Criando diretiva publicador assembly

Use o Vinculador de assembly (Al.exe) para criar o assembly da diretiva de publicador.

Para criar um assembly de diretiva de publicador

  • Digite o seguinte comando no aviso de comando:

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

    Neste comando:

    • The publisherPolicyFile argumento é o nome do arquivo de diretiva de publicador.

    • The publisherPolicyAssemblyFile argumento é o nome do assembly de diretiva publicador que resultados deste comando.O nome de arquivo do assembly deve seguir o formato:

      diretiva. majorNumber . minorNumber.mainAssemblyName.dll

    • The chave PairFile argumento é o nome do arquivo que contém o chave emparelhar.Você deverá assinar o conjunto e o conjunto de diretiva de publicador com o mesmo chave emparelhar.

    • The processorArchitecture argumento identifica a plataforma de alvo de um assembly de processador específico.Pode ser x86, msil, ia64 ou amd64.

      Observação:

      A capacidade de destino uma determinada arquitetura do processador é nova no .NET estrutura versão 2.0 .

    O comando a seguir cria um assembly de diretiva de publicador chamado policy.1.0.myAssembly de um arquivo de diretiva de publicador chamado pub.config, atribui um nome forte ao conjunto de módulos (assembly) usando o emparelhar de chaves na sgKey.snk arquivo e especifica o conjunto de destinos arquitetura x86 do processador.

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

    O assembly da diretiva de publicador deve coincidir com a arquitetura do processador do assembly que ele se aplica ao.Portanto, se seu conjunto possui um ProcessorArchitecture valor de MSIL, o assembly da diretiva de publicador para esse assembly deve ser criado com /platform:msil. Você deve fornecer um separado assembly de diretiva de publicador para cada assembly 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 publicador com a arquitetura de processador correto.O assembly da diretiva antigo o publicador não pode atender seu assembly quando 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 de publicador para um assembly compilado usando versões anteriores do .NET estrutura, pois ele sempre Especifica arquitetura do processador.

Adicionando o conjunto de diretiva de publicador para o cache de assembly global

Use o cache de assembly global ferramenta (Gacutil.exe) para adicionar o assembly da diretiva de publicador para o cache de assembly global.

Para adicionar o assembly da diretiva de publicador para o cache de assembly global

  • Digite o seguinte comando no aviso de comando:

    gacutil /i publisherPolicyAssemblyFile

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

    gacutil /i policy.1.0.myAssembly.dll
    
    Observação importante:

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

Consulte também

Conceitos

Como o Runtime Localiza Assemblies

Redirecionando a versões de assembly

Referência

Esquema configurações Runtime

Outros recursos

Programação com assemblies

Configuration Files

Configurando aplicativos

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