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:
Crie um arquivo de política do editor.
Crie um assembly de política do editor.
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.