Je cherche juste un bref aperçu de GAC pour un profane, pas un lien s'il vous plaît.
188
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.
GAC = Global Assembly Cache
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.
la source
Cache d'assemblage global
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.
la source
Bibliothèque DLL centralisée.
la source
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.
la source
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
la source
C'est comme si le registre COM était bien fait, en ce qui concerne les fichiers physiques ainsi que leurs informations d'interface et d'emplacement. Dans COM, les fichiers étaient partout, avec des métadonnées centralisées. Le GAC centralise le bang shoot.
la source
GAC (Global Assembly Cache) est l'endroit où résident tous les assemblages .NET partagés.
la source