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