Procédure : Créer une stratégie d’éditeur

Les fournisseurs d’assemblys peuvent indiquer que les applications doivent utiliser une nouvelle version d’un assembly en incluant un fichier de stratégie d’éditeur contenant l’assembly mis à niveau. Le fichier de stratégie d’éditeur spécifie les paramètres de redirection d’assembly et de base de code, et utilise le même format qu’un fichier de configuration de l’application. Le fichier de stratégie d’éditeur est compilé dans un assembly et placé dans le Global Assembly Cache.

La création d’une stratégie d’éditeur comporte trois étapes :

  1. Créez un fichier de stratégie d’éditeur.

  2. Créez un assembly de stratégie d’éditeur.

  3. Ajoutez l’assembly de stratégie d’éditeur au Global Assembly Cache.

Le schéma de la stratégie d’éditeur est décrit dans Redirection des versions d’assemblys. L’exemple suivant montre un fichier de stratégie d’éditeur qui redirige une version de myAssembly vers une autre.

<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>

Pour savoir comment spécifier une base de code, consultez Spécification de l’emplacement d’un assembly.

Création de l’assembly de stratégie d’éditeur

Utilisez l’éditeur de liens d’assembly (Al.exe) pour créer l’assembly de stratégie d’éditeur.

Pour créer un assembly de stratégie d’éditeur

Entrez la commande suivante à l'invite de commandes :

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

Dans cette commande :

  • L’argument publisherPolicyFile est le nom du fichier de stratégie d’éditeur.

  • L’argument publisherPolicyAssemblyFile est le nom de l’assembly de stratégie d’éditeur qui résulte de cette commande. Le nom du fichier d’assembly doit suivre le format :

    policy.numéro_composant_majeur.numéro_composant_mineur.nom_assembly_principal.dll

  • L’argument keyPairFile est le nom du fichier contenant la paire de clés. Vous devez signer l’assembly et l’assembly de stratégie d’éditeur avec la même paire de clés.

  • L’argument processorArchitecture identifie la plateforme ciblée par un assembly spécifique au processeur.

    Notes

    La possibilité de cibler une architecture de processeur spécifique est disponible à partir de .NET Framework 2.0.

La possibilité de cibler une architecture de processeur spécifique est disponible à partir de .NET Framework 2.0. La commande suivante crée un assembly de stratégie d’éditeur appelé policy.1.0.myAssembly à partir d’un fichier de stratégie d’éditeur appelé pub.config, affecte un nom fort à l’assembly en utilisant la paire de clés dans le fichier sgKey.snk et spécifie que l’assembly cible l’architecture de processeur x86.

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

L’assembly de stratégie d’éditeur doit correspondre à l’architecture de processeur de l’assembly auquel il s’applique. Ainsi, si votre assembly a une valeur ProcessorArchitecture de MSIL, l’assembly de stratégie d’éditeur pour cet assembly doit être créé avec /platform:anycpu. Vous devez fournir un assembly de stratégie d’éditeur distinct pour chaque assembly spécifique au processeur.

Une conséquence de cette règle est que pour changer l’architecture de processeur d’un assembly, vous devez changer le composant majeur ou mineur du numéro de version, afin que vous puissiez fournir un nouvel assembly de stratégie d’éditeur avec l’architecture de processeur appropriée. L’ancien assembly de stratégie d’éditeur ne peut pas traiter votre assembly une fois que celui-ci a une architecture de processeur différente.

Une autre conséquence est que l’éditeur de liens version 2.0 ne peut pas être utilisé pour créer un assembly de stratégie d’éditeur pour un assembly compilé à l’aide de versions antérieures du .NET Framework, car il spécifie toujours l’architecture de processeur.

Ajout de l’assembly de stratégie d’éditeur au Global Assembly Cache

Utilisez l’outil Global Assembly Cache (Gacutil.exe) pour ajouter l’assembly de stratégie d’éditeur au Global Assembly Cache.

Pour ajouter l’assembly de stratégie d’éditeur au Global Assembly Cache

Entrez la commande suivante à l'invite de commandes :

gacutil /i publisherPolicyAssemblyFile

La commande suivante ajoute policy.1.0.myAssembly.dll au Global Assembly Cache.

gacutil /i policy.1.0.myAssembly.dll

Important

L’assembly de stratégie d’éditeur ne peut pas être ajouté au Global Assembly Cache, sauf si le fichier de stratégie d’éditeur d’origine spécifié dans l’argument /link se trouve dans le même répertoire que l’assembly.

Voir aussi