Je cherche juste un bref aperçu de GAC pour un profane, pas un lien s'il vous plaît.
Réponses:
Oui, c'est donc un moyen de garder les DLL globalement accessibles sans se soucier des conflits. Fini l'enfer des DLL. Chaque architecture et version a son propre lieu de vie.
Il a également sa propre façon de le parcourir dans l'Explorateur, donc si vous allez à
C: \ Windows \ assembly
Dans l'explorateur Windows, il répertorie toutes les DLL.
Mais si vous allumez cmd
, vous pouvez voir comment c'est vraiment structuré:
C: \ Users \ tritter> cd C: \ Windows \ assembly C: \ Windows \ assembly> dir Répertoire de C: \ Windows \ assembly 20/07/2009 14h18 <DIR> GAC 17/06/2009 16h22 <DIR> GAC_32 17/06/2009 16h22 <DIR> GAC_64 17/06/2009 16h22 <DIR> GAC_MSIL ...couper... 0 fichier (s) 0 octets 9 Dir (s) 90,538,311,680 octets libres C: \ Windows \ assembly> cd GAC_64 C: \ Windows \ assembly \ GAC_64> dir Répertoire de C: \ Windows \ assembly \ GAC_64 17/06/2009 16h22 <DIR>. 17/06/2009 16h22 <DIR> .. 19/01/2008 09h54 <DIR> blbproxy ...couper... 19/01/2008 09h54 <DIR> srmlib 19/01/2008 06:11 AM <DIR> Données système 19/01/2008 06:11 AM <DIR> System.Data.OracleClient ...couper... 0 fichier (s) 0 octets 34 Dir (s) 90,538,311,680 octets libres C: \ Windows \ assembly \ GAC_64> cd System.Data C: \ Windows \ assembly \ GAC_64 \ System.Data> dir Répertoire de C: \ Windows \ assembly \ GAC_64 \ System.Data 19/01/2008 06h11 <DIR>. 19/01/2008 06h11 <DIR> .. 11/04/2009 12h20 <DIR> 2.0.0.0__b77a5c561934e089 0 fichier (s) 0 octets 3 Dir (s) 90,538,311,680 octets libres C: \ Windows \ assembly \ GAC_64 \ System.Data> cd 2.0.0.0__b77a5c561934e089 C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089> dir Répertoire de C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089 11/04/2009 12h20 <DIR>. 11/04/2009 12h20 <DIR> .. 11/04/2009 12h12 3,008,512 System.Data.dll 1 fichier (s) 3,008,512 octets 2 Dir (s) 90,538,311,680 octets libres C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089>
Ici vous pouvez voir la version 2.0.0.0__b77a5c561934e089 de System.Data.
Une DLL est identifiée par 5 parties:
Bien que les 3 premiers soient généralement les plus gros.
Décomposons-le:
Le GAC doit donc être un endroit pour stocker les bibliothèques de code afin qu'elles soient accessibles à toutes les applications exécutées sur la machine.
Chaque ordinateur sur lequel le Common Language Runtime est installé dispose d'un cache de code à l'échelle de l'ordinateur appelé le Global Assembly Cache. Le Global Assembly Cache stocke les assemblys spécifiquement désignés pour être partagés par plusieurs applications sur l'ordinateur.
Vous devez partager des assemblys en les installant dans le Global Assembly Cache uniquement lorsque vous en avez besoin. En règle générale, gardez les dépendances d'assembly privées et recherchez les assemblys dans le répertoire de l'application, sauf si le partage d'un assembly est explicitement requis. En outre, il n'est pas nécessaire d'installer des assemblys dans le Global Assembly Cache pour les rendre accessibles à l'interopérabilité COM ou au code non managé.
Ce que contient MSDN peut vous surprendre ... vous pouvez généralement le lire comme un article. Les éléments simples et les plus importants en haut, les détails complexes plus profondément. Cela explique certainement mieux que je ne pourrais.
Notez que Visual Studio affiche toutes les DLL du GAC dans l'onglet .NET de la fenêtre Références . (Cliquez avec le bouton droit sur un projet dans l'Explorateur de solutions et sélectionnez Ajouter une référence.) Cela devrait vous donner une idée plus tangible.
Le Global Assembly Cache (GAC) est un dossier dans le répertoire Windows pour stocker les assemblys .NET spécifiquement désignés pour être partagés par toutes les applications exécutées sur un système. Les assemblys peuvent être partagés entre plusieurs applications sur la machine en les enregistrant dans le Global Assembly Cache (GAC). GAC est un cache local d'assemblys à l'échelle de la machine géré par le .NET Framework.
L'application Exe, tout d'abord, fait référence à partir d'un répertoire courant vers un sous-répertoire. Et puis, répertoire système. Le répertoire système de VS6.0 était ..windows / system32. Le répertoire système .NET est semblable au chemin d'accès GAC ci-dessous.
Chemin GAC
1) C: \ Windows \ Assembly (pour .NET 2.0 ~ 3.5)
2) C: \ Windows \ Microsoft.NET \ assembly (pour .NET 4.0)
Comment installer un assemblage dans GAC (en tant qu'administrateur)
1) Glisser et déposer
2) Utilisez GacUtil.exe avec l'invite de commandes Visual Studio
gacutil -i [Path][Assembly Name].dll
Comment désinstaller un assemblage de GAC (en tant qu'administrateur)
gacutil -u [Assembly Name], Version=1.0.0.0, PublickeyToken=7896a3567gh