Configuration par application sur Windows XP
Sur Windows XP, la configuration par application remplace à la fois la configuration par défaut et la configuration de l’éditeur par application. Cela redirige la dépendance d’une application spécifique d’une version d’un assembly côte à côte vers une autre version spécifiée de l’assembly.
Notes
À compter de Windows Server 2003, la configuration par application remplace la configuration de l’éditeur par application uniquement si le fichier de configuration de l’application spécifie apply="no » dans publisherPolicy et qu’une entrée correspondante est présente dans la base de données Compatibilité des applications. La configuration par application remplace toujours la configuration par défaut. Pour plus d’informations, consultez Configuration par application.
Une configuration par application peut devenir nécessaire si le bon fonctionnement d’une application particulière nécessite une version d’assembly différente de la version normalement spécifiée en tant que configuration par défaut ou de l’éditeur. Par exemple, une mise à jour globale de la version de l’assembly par l’éditeur peut corriger l’assembly, mais interrompre cette application particulière. Dans ce cas, la configuration par application peut être utilisée pour permettre à l’application de continuer à s’exécuter avec la version précédente de l’assembly. Autre exemple, une installation de Service Pack contenant une mise à jour d’assembly peut utiliser la configuration de l’éditeur pour rediriger les dépendances de toutes les applications et assemblys sur le système de la version 1.0.0.0.0 vers la version 1.0.1.0. S’il existe une application qui nécessite la version 1.0.0.0 pour fonctionner correctement, elle peut être redirigée vers la version 1.0.0.0 à l’aide de la configuration par application.
Les administrateurs d’applications peuvent implémenter une configuration par application en créant et en installant des fichiers de configuration d’application. Ils redirigent une application spécifique de la dépendance d’une version d’un assembly côte à côte vers la dépendance à une autre version. Les fichiers de configuration d’application peuvent remplacer les fichiers de configuration de l’éditeur et la configuration par défaut spécifiée par les manifestes d’application et les manifestes d’assembly. Le fichier de configuration de l’application inclut les informations utilisées par le chargeur lorsque CreateProcess est appelé.
Pour configurer une application afin de remplacer à la fois le manifeste d’application et la configuration de l’éditeur, un développeur doit créer un fichier de configuration d’application. Le fichier de configuration de l’application est ensuite déployé et installé dans le même dossier que le fichier exécutable de l’application. Pour obtenir la liste du schéma de fichier, consultez Schéma du fichier de configuration d’application.
Notez que si votre application utilise la configuration par application, elle ne recevra pas de correctifs de sécurité importants ou de correctifs de bogues que l’éditeur de l’assembly peut émettre en tant que fichiers de configuration d’éditeur. Une application qui utilise une configuration par application peut donc rester non sécurisée ou continuer à fonctionner incorrectement même après l’application d’un nouvel assembly avec ces correctifs au système. Pour cette raison, les développeurs d’applications ne doivent jamais livrer une application avec une configuration par application. La configuration par application ne doit être utilisée par les administrateurs d’entreprise que comme correctif temporaire lorsque l’application est interrompue par une configuration d’éditeur. Dans ce cas, la solution permanente est que les développeurs de l’assembly et les développeurs de l’application devront travailler ensemble pour s’assurer que les assemblys avec la configuration de l’éditeur sont entièrement rétrocompatibles.
Voici un exemple de fichier de configuration d’application. Pour plus d’informations, consultez Fichiers de configuration d’application.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<windows>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity
name="Microsoft.Windows.mysampleApp"
processorArchitecture="x86"
version="1.0.0.0" type="win32"/>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.SampleAssembly"
processorArchitecture="x86"
publicKeyToken="0000000000000000"/>
<bindingRedirect
oldVersion="2.0.0.0"
newVersion="2.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</windows>
</configuration>