Comment afficher le dossier et les fichiers dans GAC?

109

Je souhaite afficher les dossiers et sous-dossiers dans GAC . Vous voulez également en savoir plus sur l'ajout et la suppression de GAC .

Pour installer nous écrivons ces lignes dans l'invite de commande en ouvrant Visual Studio command prompt: -

gacutil /i [assembly path]

Mais pour désinstaller, nous n'avons besoin que de: -

gacutil /u [assembly name]

Pourquoi?

Rohit Vipin Mathews
la source
Si vous allez dans l'un des dossiers d'assemblage dans le répertoire Windows, puis tapez un nom de DLL que vous recherchez dans la barre de recherche (de l'explorateur de fichiers), ils devraient commencer à apparaître.
JakeJ

Réponses:

135

Installer:

gacutil -i "path_to_the_assembly"

Vue:

Ouvrir dans le dossier de l'Explorateur Windows

  • .NET 1.0 - NET 3.5: c:\windows\assembly( %systemroot%\assembly)
  • .NET 4.x: %windir%\Microsoft.NET\assembly

OU gacutil –l

Lorsque vous allez installer un assembly, vous devez spécifier où le gacutiltrouver, vous devez donc également fournir un chemin complet. Mais quand un assembly est déjà dans GAC - gacutilconnaissez un chemin de dossier donc il a juste besoin d'un nom d'assembly.

MSDN:

sll
la source
4
Notez que pour .NET 4.0, l'emplacement du GAC est maintenant:% windir% \ Microsoft.NET \ assembly \
Alex Nolasco
57

J'ai un jour de retard et un dollar à court sur celui-ci. Si vous souhaitez afficher la structure des dossiers du GAC dans l'Explorateur Windows, vous pouvez le faire en utilisant le registre :

  1. Lancez regedit.
  2. Accédez à HKLM \ Software \ Microsoft \ Fusion
  3. Ajoutez un DWORD appelé DisableCacheViewer et définissez la valeur sur 1.

Pour une vue temporaire, vous pouvez remplacer le chemin du dossier par un lecteur, ce qui supprime les propriétés spéciales du répertoire.

  1. Lancez une invite de commande au niveau de privilège de votre compte .
  2. Tapez SUBST Z: C: \ Windows \ assembly
    • Z peut être n'importe quelle lettre de lecteur libre.
  3. Ouvrez Poste de travail et recherchez dans le nouveau répertoire de remplacement.
  4. Pour supprimer le lecteur virtuel de l'invite de commandes, tapez SUBST Z: / D

Quant à savoir pourquoi vous voudriez faire quelque chose comme ça, j'ai utilisé cette astuce pour comparer les DLL GAC entre différentes machines pour m'assurer qu'elles sont vraiment les mêmes.

Rakuen42
la source
Vous pouvez automatiser l'édition du registre avec Powershell:
Textcape
Nouvel élément 'HKLM: \ Software \ Microsoft \ Fusion' -Force | New-ItemProperty -Name "DisableCacheViewer" -PropertyType DWord -Value 1 -Force | Out-Null
Textcape
40

Lancez le programme "Exécuter" (Windows Vista / 7/8: saisissez-le dans la barre de recherche du menu Démarrer) et saisissez: C:\windows\assembly\GAC_MSIL

Ensuite, déplacez-vous vers le dossier parent (Windows Vista / 7/8: en cliquant dessus dans la barre de l'explorateur) pour voir tous les fichiers GAC dans une fenêtre d'exploration normale. Vous pouvez désormais copier, ajouter et supprimer des fichiers comme partout ailleurs.

Julius Kunze
la source
Merci - cela m'a permis d'utiliser l'Explorateur Windows qui a été marqué comme obsolète depuis .NET 4
Dave Friedel
8

Pour afficher les fichiers, parcourez-les simplement à partir de l'invite de commande ( cmd), par exemple:

c:\>cd \Windows\assembly\GAC_32
c:\Windows\assembly\GAC_32> dir

Pour ajouter et supprimer des fichiers du GAC, utilisez l'outil gacutil

Klaus Byskov Pedersen
la source
je veux le voir comme dossier normal.
Rohit Vipin Mathews
@CodingMastero Ce n'est PAS un dossier normal!
Klaus Byskov Pedersen
Ne pouvons-nous pas utiliser un hack pour le voir comme normal?
Rohit Vipin Mathews
@CodingMastero Non, vous ne pouvez pas. Vous pouvez l'afficher via l'invite de commande comme indiqué ci-dessus.
Klaus Byskov Pedersen
1
Oui. Désolé, je n'ai peut-être pas été clair ici. Vous ne pouvez pas utiliser C:\Windows\assemblypour parcourir le .NET 4.0 GAC. Bien sûr, vous pouvez toujours l'utiliser avec .NET 2/3 (s'il est également installé). Il n'y a pas d'extensions de shell comparables (AFAIK) qui fonctionnent de la même manière pour le nouveau C:\Windows\Microsoft.NET\assemblyrépertoire.
Christian.K
5

Vous installez en tant qu'assemblages en utilisant:

  • Un programme d'installation, que vous créez pour votre application.
  • Utilisation de l' gacutil.exeoutil avec l' -ioption de la ligne de commande.
  • Déposer l'assembly dans %windir%\Assembly(uniquement jusqu'à .NET 3.5, CLR 2.0)

Vous affichez le contenu du GAC en utilisant:

  • L' gacutil.exeoutil avec l' -loption.
  • Pour .NET 2.0, 3.0 et 3.5 (CLR 2.0), %windir%\assemblyutilisez l'Explorateur Windows.

Notez que l'emplacement (physique) du GAC a changé pour .NET 4.0. Ce n'est plus dedans %windir%\Assembly, mais maintenant dedans %windir%\Microsoft.NET\assembly. Cependant, vous ne devriez jamais écrire de code qui dépend de l'emplacement physique de toute façon, car étant donné les outils disponibles, cela n'est guère nécessaire (mis à part quelques outils de diagnostic système "cool").

Christian.K
la source
Outre gacutil.exele seul autre outil disponible que je connaisse est fusion.dll.
Scott Solmer