Partager via


Cache de l'assembly global

Chaque ordinateur sur lequel le Common Language Runtime est installé possède un cache de code à l'échelle de l'ordinateur appelé cache de l'assembly global. Le cache de l'assembly global stocke les assemblys spécialement destinés à être partagés entre plusieurs applications sur l'ordinateur.

Vous ne devez partager des assemblys en les installant dans le cache de l'assembly global qu'en cas de nécessité. En règle générale, vous devez garder les dépendances d'assembly privées et rechercher les assemblys dans le répertoire de l'application, à moins que le partage d'un assembly soit explicitement requis. En outre, il n'est pas nécessaire d'installer des assemblys dans le cache de l'assembly global pour les rendre accessibles à COM Interop ou au code non managé.

Remarque   Il existe des scénarios au cours desquels vous ne souhaitez explicitement pas installer un assembly dans le cache de l'assembly global. Si vous placez l'un des assemblys composant une application dans le cache de l'assembly global, vous ne pouvez plus répliquer ou installer l'application en utilisant la commande xcopy pour copier le répertoire de l'application. Vous devez également déplacer l'assembly dans le cache de l'assembly global.

Il existe plusieurs modes de déploiement d'un assembly dans le cache de l'assembly global :

  • Utilisez un programme d'installation conçu pour fonctionner avec le cache de l'assembly global. Il s'agit de l'option par défaut d'installation d'assemblys dans le cache de l'assembly global.

  • Utilisez un outil de développement appelé Outil Global Assembly Cache Tool (Gacutil.exe) fourni avec le Kit de développement .NET Framework SDK.

  • Utilisez l'Explorateur Windows pour faire glisser des assemblys dans le cache.

    Remarque   Au cours de scénarios de déploiement, utilisez Windows Installer 2.0 pour installer des assemblys dans le cache de l'assembly global. Utilisez l'Explorateur Windows ou l'outil Global Assembly Cache Tool uniquement au cours de scénarios de développement, car ils ne proposent pas de fonctionnalités de décompte de références d'assembly ou d'autres fonctionnalités disponibles lors de l'utilisation de Windows Installer.

Les administrateurs protègent souvent le répertoire WINNT en utilisant une liste de contrôle d'accès (ACL, Access Control List) pour contrôler l'accès en écriture et en exécution. Le cache de l'assembly global étant installé dans le répertoire WINNT, il hérite de la liste de contrôle d'accès de ce répertoire. Il est recommandé que seuls les utilisateurs disposant de privilèges d'administrateur soient autorisés à supprimer des fichiers du cache de l'assembly global.

Les assemblys déployés dans le cache de l'assembly global doivent avoir un nom fort. Lorsqu'un assembly est ajouté au cache de l'assembly global, des contrôles d'intégrité sont effectués sur tous les fichiers qui composent l'assembly. Le cache effectue ces contrôles d'intégrité pour vérifier qu'aucun assembly n'a été falsifié, par exemple, lorsqu'un fichier a été modifié, mais que le manifeste ne reflète pas cette modification.

Voir aussi

Assemblys | Utilisation d'assemblys et du cache de l'assembly global | Assemblys avec nom fort