Concepts d'applications isolées et d'assemblys côte à côte

Une application est considérée comme une application isolée si tous ses composants sont des assemblys côte à côte.Un assembly côte à côte est une collection de ressources (un groupe de DLL, de classes de fenêtres, de serveurs COM, de bibliothèques de types, ou d'interfaces) qui sont déployés ensemble et rendus disponibles pour une application peut utiliser au moment de l'exécution.En général, un assembly côte à côte est composé d'une ou de plusieurs DLL.

Partagé ou privé

Un assembly côte à côte peut ou être partagé ou privé.Assemblys côte à côte partagés peut être utilisé par plusieurs applications qui spécifient, dans leurs manifestes, une dépendance sur l'assembly.Plusieurs versions d'un assembly côte à côte peuvent être partagées par les différentes applications qui s'exécutent en même temps.assembly privé est un assembly déployé avec une demande d'utilisation exclusive de cette application.Les assemblys privés sont installés dans le dossier contenant le fichier exécutable ou un de ses sous-dossiers.

Manifestes et ordre de recherche

Les applications et assemblys côte à côte isolé sont décrits par manifestes.Un manifeste est un document XML qui peut être un fichier externe ou peut être incorporé dans une application ou un assembly en tant que ressource.Le fichier manifeste d'une application isolée sert à gérer les noms et les versions des assemblys partagés côte à côte auxquels l'application doit se lier au moment de l'exécution.Le manifeste d'un assembly côte à côte spécifie les noms, les versions, les ressources et les assemblys dépendants d'assemblys côte à côte.Pour un assembly côte à côte partagés, le manifeste est installé dans le dossier de %WINDIR%\WinSxS\Manifests\.Dans le cas d'un assembly privé, nous vous recommandons d'inclure le manifeste dans la DLL comme une ressource qui a un ID égal à 1.Vous pouvez également donner à l'assembly privé le même nom que celui de la DLL.Pour plus d'informations, consultez Assemblys privés.

Au moment de l'exécution, windows utilise les informations de l'assembly du manifeste d'application pour rechercher et charger l'assembly côte à côte correspondant.Si une application isolée spécifie une dépendance d'assembly, le système d'exploitation recherche d'abord pour l'assembly parmi les assemblys partagés dans le cache d'assembly natif dans le dossier de %WINDIR%\WinSxS\.Si l'assembly requis est introuvable, le système d'exploitation ensuite des recherches pour un assembly privé dans un dossier de la structure du répertoire de l'application.Pour plus d'informations, consultez Séquence de recherche d'assemblys.

Modification des dépendances

Vous pouvez modifier l'assembly côte à côte que les dépendances après une application a été déployées en modifiant Fichiers de configuration de l'éditeur et Fichiers de configuration de l'application.Un fichier de configuration de l'éditeur, également appelé un fichier de stratégie d'éditeur, est un fichier XML qui redirige globalement des applications et des assemblys d'utiliser une version d'un assembly côte à côte à utiliser une autre version du même assembly.Par exemple, vous pouvez modifier une dépendance lorsqu'une résolution de bogue ou une correction de sécurité est déployée pour un assembly côte à côte et vous souhaitez rediriger toutes les applications d'utiliser la version finale.Un fichier de configuration de l'application est un fichier XML qui redirige une application spécifique d'utiliser une version d'un assembly côte à côte à utiliser une autre version du même assembly.Vous pouvez utiliser un fichier de configuration de l'application pour rediriger une application particulière d'utiliser une version d'un assembly côte à côte qui est différent de celui qui est défini dans le fichier de configuration de l'éditeur.Pour plus d'informations, consultez Configuration.

Bibliothèques Visual C++

Dans Visual Studio 2005 et Visual Studio 2008, les bibliothèques redistribuables telles qu'ATL, MFC, le runtime c, C++ standard, OpenMP, et le MSDIA sont déployées en tant qu'assemblys côte à côte partagés dans le cache d'assembly natif.Dans Visual Studio 2010 et Visual Studio 2012, les bibliothèques redistribuables utilisent le déploiement central.Par défaut, toutes les applications générées à l'aide de Visual C++ sont générées avec le manifeste incorporé dans le fichier binaire final, et le manifeste décrit les dépendances de fichier binaire sur les bibliothèques Visual C++.Pour comprendre la génération de manifeste pour les applications Visual C++, consultez l' Fonctionnement de la génération de manifestes pour les programmes C/C++.Un manifeste n'est pas nécessaire pour les applications qui sont statiquement liées aux bibliothèques qu'ils utilisent, ou qui utilisent le déploiement local.Pour plus d'informations sur le déploiement, consultez Deployment in Visual C++.

Voir aussi

Autres ressources

Génération d'applications isolées C/C++ et d'assemblys côte à côte