Procédure : Créer une stratégie d’éditeur
Remarque
Cet article est spécifique au .NET Framework. Ceci ne s’applique pas aux implémentations plus récentes de .NET, y compris .NET 6 et ultérieur.
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 :
Créez un fichier de stratégie d’é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 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.