Comment : créer une stratégie d'éditeur
Mise à jour : novembre 2007
Les fournisseurs d'assemblys peuvent établir que les applications utilisent une nouvelle version en incluant un fichier de stratégie d'éditeur contenant l'assembly mis à jour. Le fichier de stratégie de l'éditeur spécifie la redirection de l'assembly et les paramètres de base de code et utilise le même format que le fichier de configuration d'une application. Le fichier de stratégie de l'éditeur est compilé dans un assembly et placé dans le Global Assembly Cache.
La création d'une stratégie de l'éditeur comporte trois étapes :
Créez un fichier de stratégie de l'éditeur.
Créez un assembly de stratégie d'éditeur.
Ajoutez l'assembly de stratégie d'éditeur au Global Assembly Cache.
Le schéma d'une stratégie de l'éditeur est décrit dans Redirection des versions d'assemblys. L'exemple suivant illustre un fichier de stratégie de l'é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 de l'assembly.
Création de l'assembly de stratégie d'éditeur
Utilisez l'utilitaire Assembly Linker (Al.exe) pour créer l'assembly de stratégie d'éditeur.
Pour créer un assembly de stratégie d'éditeur
Tapez la commande suivante à l'invite de commande :
**al /link:**publisherPolicyFile **/out:**publisherPolicyAssemblyFile **/keyfile:**keyPairFile **/platform:**processorArchitecture
Dans cette commande :
L'argument publisherPolicyFile est le nom du fichier de stratégie de l'éditeur.
L'argument publisherPolicyAssemblyFile est le nom de l'assembly de stratégie d'éditeur qui résulte de cette commande. Le nom de fichier de l'assembly doit suivre le format suivant :
policy.majorNumber.minorNumber.mainAssemblyName.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. Ce peut être amd64, ia64, msil ou x86.
Remarque : La possibilité de cibler une architecture de processeur spécifique est une nouveauté du .NET Framework version 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, assigne un nom fort à l'assembly à l'aide de la paire de clés qui se trouve dans le fichier sgKey.snk et indique 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 la valeur ProcessorArchitecture de votre assembly est MSIL, l'assembly de stratégie d'éditeur de cet assembly doit être créé avec /platform:msil. Vous devez fournir un assembly de stratégie d'éditeur distinct pour chaque assembly spécifique au processeur.
Du fait de cette règle, pour modifier l'architecture de processeur d'un assembly, vous devez modifier le composant majeur ou mineur du numéro de version afin de pouvoir fournir un nouvel assembly de stratégie d'éditeur avec l'architecture de processeur correcte. L'ancien assembly de stratégie d'éditeur ne peut pas assurer la maintenance de votre assembly une fois que celui-ci a une architecture de processeur différente.
Cela implique également 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 précédentes du .NET Framework, car l'architecture de processeur est toujours spécifiée.
Ajout de l'assembly de stratégie d'éditeur au Global Assembly Cache
Utilisez l'outil Global Assembly Cache Tool (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
Tapez la commande suivante à l'invite de commande :
gacutil /i publisherPolicyAssemblyFile
La commande suivante ajoute policy.1.0.myAssembly.dll au Global Assembly Cache.
gacutil /i policy.1.0.myAssembly.dll
Remarque importante : L'assembly de stratégie d'éditeur ne peut pas être ajouté au Global Assembly Cache à moins que le fichier de stratégie d'éditeur d'origine se trouve dans le même répertoire que l'assembly.
Voir aussi
Concepts
Méthode de localisation des assemblys par le runtime
Redirection des versions d'assemblys
Référence
Schéma des paramètres d'exécution