Fichiers de configuration des applications
Un fichier de configuration d’application est un fichier XML utilisé pour contrôler la liaison d’assembly. Il peut rediriger une application de l’utilisation d’une version d’un assembly côte à côte vers une autre version du même assembly. C’est ce qu’on appelle la configuration par application. Un fichier de configuration d’application s’applique uniquement à un manifeste d’application spécifique et aux assemblys dépendants. Les composants isolés compilés avec un manifeste incorporé ISOLATIONAWARE_MANIFEST_RESOURCE_ID nécessitent un fichier de configuration d’application distinct. Les manifestes gérés avec CreateActCtx nécessitent un fichier de configuration d’application distinct.
La redirection spécifiée par un fichier de configuration d’application peut remplacer les versions d’assembly spécifiées par les manifestes d’application et les fichiers de configuration de l’éditeur. Par exemple, si un fichier de configuration d’éditeur spécifie que toutes les références à un assembly sont redirigées de la version 1.0.0.0 vers la version 1.1.0.0, un fichier de configuration d’application peut être utilisé pour rediriger une application particulière vers la version 1.0.0.0. Un fichier de configuration d’application s’applique uniquement au manifeste d’application et aux assemblys dépendants spécifiés.
Pour obtenir une liste complète du schéma XML, consultez Schéma du fichier de configuration d’application.
Les fichiers de configuration d’application ont les éléments et attributs indiqués dans le tableau suivant.
Élément | Attributs | Obligatoire |
---|---|---|
configuration | Oui | |
windows | Oui | |
publisherPolicy | Oui | |
Appliquer | Oui | |
Duree | Non | |
assemblyBinding | Oui | |
Sonder | Non | |
privatePath | Oui | |
Dépendance | Non | |
dependentAssembly | Oui | |
assemblyIdentity | Oui | |
type | Oui | |
name | Oui | |
language | Non | |
processorArchitecture | Oui | |
version | Oui | |
publicKeyToken | Non | |
bindingRedirect | Oui | |
oldVersion | Oui | |
newVersion | Oui |
Emplacement du fichier
Les fichiers de configuration d’application doivent être installés au même emplacement que le manifeste de l’application.
Syntaxe du nom de fichier
Le nom d’un fichier de configuration d’application est le nom de l’exécutable de l’application suivi de .config.
Par exemple, un fichier de configuration d’application qui fait référence à Example.exe ou Example.dll utiliserait la syntaxe de nom de fichier indiquée dans l’exemple suivant. Vous pouvez omettre le champ pour <l’ID> de ressource si vous installez le fichier de configuration en tant que fichier distinct ou si l’ID de ressource est 1.
example.exe.<ID de> ressource.config
example.dll.<ID de> ressource.config
Éléments
Les noms des éléments et des attributs respectent la casse. Les valeurs des éléments et des attributs ne respectent pas toutes la casse, à l’exception de la valeur de l’attribut type.
configuration
Élément conteneur pour les éléments windows et runtime d’un fichier de configuration d’application. Obligatoire.
windows
Inclut les parties du fichier de configuration de l’application qui s’appliquent à la redirection des assemblys Win32.
Notes
L’auteur d’une application ne doit pas inclure un fichier de configuration avec un sous-élément Windows dans le cadre de son application. Cela peut être autorisé si le seul objectif du fichier de configuration est d’activer la fonctionnalité privatePath d’un élément de sondage . L’élément de sondage n’est pas disponible sur les systèmes antérieurs à Windows Server 2008 R2 et Windows 7.
publisherPolicy
Spécifie s’il faut appliquer une stratégie d’éditeur.
Cet élément a les attributs indiqués dans le tableau suivant.
Attribut | Description |
---|---|
Appliquer | La valeur « oui » applique la stratégie d’éditeur. Il s'agit du paramètre par défaut. La valeur « non » n’applique pas la stratégie d’éditeur. |
runtime
Inclut les parties du fichier de configuration d’application qui s’appliquent à la redirection des assemblys .Net.
assemblyBinding
Inclut les informations de redirection pour l’application et l’assembly affectés par ce fichier de configuration d’application. Le premier sous-élément de assemblyBinding doit être un assemblyIdentity qui identifie l’application.
À compter de Windows Server 2008 R2 et Windows 7, un élément assemblyBinding peut inclure un sous-élément de sondage .
sonde
Sous-élément facultatif d’un élément assemblyBinding qui étend la recherche d’assemblys dans des répertoires supplémentaires. Les répertoires supplémentaires ne doivent pas nécessairement être des sous-répertoires du répertoire de l’assembly.
Notes
Cet élément n’est pas disponible sur les systèmes antérieurs à Windows Server 2008 R2 et Windows 7 et ne peut être utilisé que dans un élément Windows .
Cet élément a les attributs indiqués dans le tableau suivant.
Attribut | Description |
---|---|
privatePath | Spécifie les chemins relatifs des sous-répertoires du répertoire de base de l’application qui peuvent contenir des assemblys. Un maximum de neuf chemins de sous-répertoire peut être spécifié. Délimitez chaque chemin de sous-répertoire avec un point-virgule. |
Vous pouvez utiliser le spécificateur spécial à points doubles dans un chemin d’accès pour désigner le répertoire parent du répertoire actif. Pas plus de deux niveaux au-dessus du répertoire actif ne peuvent être spécifiés à l’aide de points doubles. N’utilisez pas de triples points. Par exemple, une application utilisant l’élément de sondage suivant vérifie des répertoires supplémentaires pour un assembly.
<probing privatePath="bin;..\bin2\subbin;bin3"/>
dependency
Élément conteneur pour au moins une dépendanceAssembly. Chaque dépendanceAssembly peut se trouver à l’intérieur d’une seule dépendance. Cet élément n’a pas d’attributs. Optionnel.
dependentAssembly
Le premier sous-élément doit être un élément assemblyIdentity qui identifie l’assembly côte à côte redirigé par le fichier de configuration de l’application. Un dependentAssembly n’a pas d’attributs.
assemblyIdentity
En tant que premier sous-élément d’un élément assemblyBinding , assemblyIdentity décrit et identifie de manière unique une application. Le fichier de configuration de l’application redirige la liaison de cette application vers des assemblys côte à côte. Par exemple, l’assemblyIdentity suivant indique que le fichier de configuration de l’application affecte la liaison de l’application mysampleApp aux assemblys côte à côte. Les assemblys redirigés sont identifiés dans un dépendanteAssembly.
<assemblyIdentity processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>
En tant que premier sous-élément d’un élément dependentAssembly , assemblyIdentity décrit un assembly côte à côte dont dépend l’application. Le fichier de configuration de l’application reconfigure l’identité de cet assembly requis. Par exemple, les assemblyIdentity et bindingRedirect suivants reconfigurent une dépendance à Microsoft.Windows.SampleAssembly de la version 2.0.0.0 à la version 2.1.0.0.
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.SampleAssembly"
processorArchitecture="x86"
publicKeyToken="0000000000000000"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="2.1.0.0"/>
</dependentAssembly>
</dependency>
Notez que chaque assemblyIdentity inclus dans un dependentAssembly doit correspondre exactement à l’assemblyIdentity dans le propre manifeste d’assembly de l’assembly.
L’élément assemblyIdentity possède les attributs suivants. Il n’a pas de sous-éléments.
Attribut | Description |
---|---|
type | La valeur doit être win32 (minuscules). Obligatoire. |
name | L’attribut name identifie l’application affectée par le fichier de configuration de l’application ou l’assembly redirigé. Utilisez le format suivant pour le nom : Organization.Division.Name. Obligatoire. Par exemple : Microsoft.Windows.MysampleApp ou Microsoft.Windows.MysampleAsm. |
language | Identifie la langue. Optionnel. Pour un assemblyIdentity faisant référence à un assembly, 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’application ou de l’assembly. Utilisez la syntaxe de version en quatre parties : mmmm.nnnn.oooo.pppp. Obligatoire. |
publicKeyToken | Pour un assemblyIdentity faisant référence à un assembly, 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. Obligatoire pour tous les assemblys côte à côte partagés. |
bindingRedirect
L’élément bindingRedirect contient des informations de redirection pour la liaison de l’assembly. Chaque bindingRedirect doit être inclus dans exactement une dépendanceAssembly. La syntaxe de version en quatre parties de la nouvelle version et de l’ancienne version doit spécifier les mêmes versions principales et mineures.
Cet élément a les attributs indiqués dans le tableau suivant.
Attribut | Description |
---|---|
oldVersion | Spécifie la version de l’assembly remplacée et redirigée. 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 d’application ne spécifient pas de fichiers.
Exemple
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.10.0"/>
<bindingRedirect oldVersion="1.0.50.2011-1.0.60.65535" newVersion="1.0.70.0"/>