Fichiers de configuration du serveur de publication
Un fichier de configuration d’éditeur est un fichier XML qui redirige globalement les applications et les assemblys de l’utilisation d’une version d’un assembly côte à côte vers une autre version du même assembly. En règle générale, l’éditeur de l’assembly émet une mise à jour compatible ou un correctif de sécurité par assembly en émettant un fichier de configuration de l’éditeur à installer avec une mise à jour du Service Pack. C’est ce qu’on appelle la configuration de l’éditeur. Pour plus d’informations sur ce type de configuration , consultez Configuration de l’éditeur.
Les fichiers de configuration de l’éditeur ont les éléments et attributs suivants. Pour obtenir une liste complète du schéma XML, consultez Schéma du fichier de configuration de l’éditeur.
Élément | Attributs | Obligatoire |
---|---|---|
assembly | Oui | |
manifestVersion | Oui | |
assemblyIdentity | Oui | |
type | Oui | |
name | Oui | |
language | Non | |
processorArchitecture | Non | |
version | Oui | |
publicKeyToken | Non | |
Dépendance | Non | |
dependentAssembly | Non | |
bindingRedirect | Oui | |
oldVersion | Oui | |
newVersion | Oui |
Emplacement du fichier
Les fichiers de configuration du serveur de publication doivent être installés dans le dossier WinSxS. Ils sont généralement installés en tant que fichier distinct, mais les fichiers de configuration de l’éditeur peuvent également être inclus en tant que ressource dans une DLL. Un fichier de configuration d’éditeur ne peut pas être inclus en tant que ressource dans un fichier EXE. Un fichier EXE peut inclure un manifeste d’application en tant que ressource.
Syntaxe du nom de fichier
Le nom de fichier d’un fichier de configuration d’éditeur a la stratégie de formulaire. major. mineur.assemblyname où les éléments principaux et secondaires font référence aux parties principales et mineures de la version de l’assembly qui est affectée. Assemblyname fait référence au nom de l’assembly.
Par exemple, un fichier de configuration d’éditeur pour la version 6.0 de l’assembly Microsoft.Windows.Common-Controls aurait le nom suivant :
- policy.6.0.Microsoft.Windows.Common-Controls
N’utilisez pas les fichiers de configuration de stratégie pour incrémenter la version principale ou mineure d’un assembly. Par exemple, ne redirigez pas la version 6.0.0.0 vers 7.0.0.0 ou 6.1.0.0. Lorsqu’une application référence une version d’assembly, telle que 6.0.0.0, vérifie côte à côte la présence de tous les fichiers de configuration de stratégie avec les versions principales et mineures spécifiées, par exemple 6.0. L’application est ensuite redirigée vers une autre version de l’assembly, par exemple 6.0.1.0. Si un fichier de configuration d’éditeur incrémente la version principale ou mineure d’un assembly, la redirection ultérieure de l’assembly peut nécessiter l’émission de plusieurs fichiers de configuration de stratégie.
Éléments
-
Assemblée
-
Élément conteneur. Son premier sous-élément doit être un assemblyIdentity. Obligatoire.
L’élément assembly doit se trouver dans l’espace de noms urn:schemas-microsoft-com:asm.v1. Les éléments enfants de l’assembly doivent également se trouver dans cet espace de noms, par héritage ou par balisage.
L’élément assembly a les attributs suivants.
Attribut Description manifestVersion L’attribut manifestVersion doit être défini sur 1.0. -
assemblyIdentity
-
Décrit et identifie de manière unique un assembly côte à côte.
En tant que premier sous-élément d’un élément d’assembly , assemblyIdentity décrit l’assembly côte à côte qui a une ou plusieurs de ses dépendances d’assembly modifiées. Le fichier de configuration de l’éditeur redirige les dépendances de l’assembly identifié. Par exemple, l’assemblyIdentity suivant indique que le fichier de configuration de l’éditeur affecte les dépendances de l’assembly Microsoft.Windows.Pop 6.0.0.0 x86.
<assemblyIdentity type="win32-policy" publicKeyToken="0000000000000000" name="policy.6.0.Microsoft.Windows.Pop" version="2.1.0.0" processorArchitecture="x86"/>
En tant que premier sous-élément d’un élément dependentAssembly , assemblyIdentity décrit une dépendance d’assembly côte à côte. Le fichier de configuration de l’éditeur reconfigure l’identité de cet assembly côte à côte requis. La modification est spécifiée dans un bindingRedirect. Par exemple, l’assemblyIdentity suivant modifie toute dépendance sur Microsoft.Windows.SampleAssembly version 2.0.0.0 en dépendance sur Microsoft.Windows.SampleAssembly version 2.0.1.0.
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" processorArchitecture="x86" publicKeyToken="0000000000000000"/> <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/> </dependentAssembly> </dependency>
L’élément assemblyIdentity a les attributs suivants. Il n’a aucun sous-élément.
Attribut Description type Spécifie le type d’assembly. Obligatoire. Dans assemblyIdentity pour l’assembly affecté, la valeur de l’attribut type doit être définie sur win32-policy. La valeur win32-policy doit être en minuscules.
Dans assemblyIdentity pour la dépendance d’assembly en cours de modification, la valeur de l’attribut type doit être définie sur win32. La valeur win32 doit être en minuscules.name Nomme un assembly de manière unique. Obligatoire. Dans assemblyIdentity de l’assembly affecté, name a la stratégie de formulaire. major. mineur.assemblyname où les éléments principaux et secondaires font référence aux parties principales et mineures de la version de l’assembly.
Dans assemblyIdentity pour la dépendance d’assembly qui change, name a la forme Organization.Division.Name. Par exemple, Microsoft.Windows.MysampleApp.language Identifie la langue de l’assembly. Optionnel. Dans assemblyIdentity pour l’assembly affecté, si l’assembly est spécifique à la langue, spécifiez le code de langage DHTML. Si l’assembly est destiné à une utilisation mondiale (sans langue), omettez cet attribut.
Dans assemblyIdentity pour la dépendance d’assembly de modification, si l’assembly est spécifique à la langue, spécifiez le code de langage DHTML. Si l’assembly est destiné à une utilisation mondiale (sans langue), définissez la valeur sur « * ».processorArchitecture Spécifie le processeur exécutant l’application. version Spécifie la version de l’assembly. Utilisez la syntaxe de version en quatre parties : mmmm.nnnn.oooo.pppp Obligatoire uniquement dans l’assemblyIdentity de contexte DEF. Ne spécifiez pas l’attribut de version dans l’assembly de contexte REFIdentity. publicKeyToken Chaîne hexadécimale de 16 caractères représentant les 8 derniers octets du hachage SHA-1 de la clé publique sous laquelle l’assembly est signé. La clé publique utilisée pour signer le catalogue doit être supérieure ou égale à 2 048 bits. Un publicKeyToken est requis pour tous les assemblys côte à côte partagés. Le publicKeyToken utilisé pour le fichier de configuration de l’éditeur doit être la même clé que celle utilisée pour l’assembly signé. Les fichiers de configuration de l’éditeur peuvent être signés à l’aide des mêmes outils que les assemblys. Consultez Exemple de signature d’assembly et Création de fichiers et catalogues signés. -
Dépendance
-
Élément conteneur facultatif pour au moins un dependentAssembly. Il n’a aucun attribut.
-
dependentAssembly
-
Chaque dependentAssembly doit se trouver à l’intérieur d’une seule dépendance. Un dependentAssembly n’a pas d’attributs. Le premier sous-élément de dependentAssembly doit être un assemblyIdentity pour l’assembly côte à côte reconfiguré par la configuration de l’éditeur.
-
bindingRedirect
-
L’élément bindingRedirect contient des informations de redirection pour la liaison de l’assembly.
Cet élément a les attributs indiqués dans le tableau suivant.
Attribut Description oldVersion Spécifie la version de l’assembly en cours de substitution et de redirection. Utilisez la syntaxe de version en quatre parties nnnnn.nnnnn.nnnnn.nnnnn. Spécifiez une plage de versions par un tiret sans espaces. Par exemple, 2.14.3.0 ou 2.14.3.0 2.16.0.0. Obligatoire. newVersion Spécifie la version de l’assembly de remplacement. Utilisez la syntaxe de version en quatre parties nnnnn.nnnnn.nnnnn.nnnnn.
Notes
Les fichiers de configuration de l’éditeur ne spécifient pas de fichiers. Notez que les fichiers de stratégie spécifiques à la langue sont distincts du fichier de configuration de l’éditeur.
Exemple
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32-policy" publicKeyToken="0000000000000000" name="policy.6.0.Proseware.Research.SampleAssembly" version="1.0.1.0" language="en-us" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" publicKeyToken="0000000000000000" name="Proseware.Research.SampleAssembly" language="en-us" processorArchitecture="x86"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.1.0"/>
</dependentAssembly>
</dependency>
</assembly>