Composants isolés

Les auteurs de packages d’installation peuvent spécifier que le programme d’installation copie les fichiers partagés (généralement des DLL partagées) d’une application dans le dossier de cette application plutôt que dans un emplacement partagé. Cet ensemble privé de fichiers (DLL) est alors utilisé uniquement par l’application. L’isolation de l’application avec ses composants partagés de cette manière présente les avantages suivants :

  • L’application utilise toujours les versions des fichiers partagés avec lesquels elle a été déployée.
  • L’installation de l’application ne remplace pas les autres versions des fichiers partagés par d’autres applications.
  • Les installations ultérieures d’autres applications utilisant différentes versions des fichiers partagés ne peuvent pas remplacer les fichiers utilisés par cette application.

Étant donné que l’implémentation actuelle de COM conserve un seul chemin d’accès complet dans le Registre pour chaque paire CLSID/Context, elle force toutes les applications à utiliser la même version d’une DLL partagée. Pour permettre à une application de conserver une copie privée d’un serveur COM, le chargeur système dans Windows 2000 vérifie la présence d’un fichier .LOCAL dans le dossier de l’application. Si le chargeur système détecte un fichier .LOCAL, il modifie sa logique de recherche pour préférer les DLL situées dans le même dossier que l’application.

Lorsque Windows Installer exécute l’action IsolateComponents, il copie les fichiers du composant (généralement une DLL partagée) spécifié dans la colonne Component_Shared de la table IsolatedComponent dans le même dossier que le composant (généralement un fichier .exe) spécifié dans la colonne Component_Application. Le programme d’installation crée un fichier dans ce répertoire, d’une longueur nulle en octets, avec le nom de fichier court du fichier de clé pour Component_Application (généralement le nom est le même que le .exe de l’application) ajouté à .LOCAL. Le programme d’installation utilise l’inscription du composant dans son emplacement partagé et n’écrit aucune information d’inscription pour la copie du composant dans l’emplacement privé.

Pour plus d'informations, consultez les pages suivantes :