Redirection DLL/COM sur Windows

La redirection DLL/COM est une stratégie d’isolation d’application utilisée par les administrateurs d’entreprise sur Windows XP.

**Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP avec SP2 : ** L’utilisation de stratégies de redirection DLL/COM n’est pas recommandée, car les applications isolées qui utilisent des manifestes et des assemblys côte à côte peuvent être plus faciles à mettre à jour et à gérer. La présence d’un fichier .local est ignorée si un manifeste est présent. La stratégie de redirection DLL/COM utilisant des fichiers .local fonctionne si l’application n’a pas de manifeste.

La redirection DLL/COM lie une application à une version locale d’un composant. Les fichiers du composant local peuvent être conservés séparément de la version système du composant dans un emplacement privé de l’application. La version du composant du système est inscrite globalement et disponible pour toutes les autres applications qui y sont liées. La version locale du composant est réservée à l’utilisation exclusive de l’application. Si nécessaire, les fichiers de composants utilisés par l’application peuvent être chargés en mémoire en même temps que les fichiers de composants du système.

La redirection DLL/COM est activée en installant un fichier spécial ainsi qu’une copie du fichier de composant local dans le même répertoire que le fichier exécutable de l’application. Le fichier spécial est un fichier vide nommé d’après le nom de fichier de l’exécutable de l’application et ajouté avec .local. Par exemple, pour activer la redirection DLL/COM pour une application nommée Myapp, la version locale du composant et un fichier vide nommé Myapp.exe.local doivent être copiés dans le dossier contenant Myapp.exe. Cela lie l’application à la version locale du composant plutôt qu’à la version partagée globalement du composant.

Lorsqu’une application charge un fichier de composant, tel qu’un fichier DLL ou .ocx, Windows le recherche d’abord dans le dossier où le fichier .local et exécutable de l’application est installé. S’il est trouvé, l’application utilise ce fichier de composant, quel que soit le chemin de recherche de répertoire défini dans l’application ou le Registre. S’il est introuvable, le fichier de composant dans le chemin de recherche défini est utilisé.

L’utilitaire d’installation doit effectuer les opérations suivantes pour installer l’application avec la redirection DLL/COM :

  • Un fichier .local vide doit être copié dans le même dossier que le fichier exécutable de l’application.
  • Tous les composants, dll et fichiers .ocx utilisés par l’application doivent être copiés dans le même dossier que le fichier exécutable de l’application.
  • Les composants COM isolés doivent être inscrits auprès de Windows afin que les différentes versions de l’assembly ne soient pas en conflit les unes avec les autres lorsqu’elles sont chargées en mémoire en même temps. Le processus d’inscription nécessite que, bien que l’implémentation du composant puisse changer d’une version à l’autre, certaines métadonnées COM telles que CLSID, ProgID, Bibliothèque de types et Modèle de thread ne peuvent pas.
  • Si l’application est installée à l’aide de Windows Installer, le répertoire de l’application peut être sécurisé à l’aide de la table LockPermissions. En règle générale, le système reçoit un accès en lecture, en écriture et en exécution ; tous les autres processus n’ont accès qu’à l’exécution et en lecture.