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:
Crie um arquivo de diretiva de editor.
Crie um assembly de diretiva de editor.
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
Conceitos
Como o Runtime Localiza Assemblies
Redirecionando as versões do Assembly