Wie kann ich den Ordner und die Dateien in GAC anzeigen?

109

Ich möchte die Ordner und Unterordner in GAC anzeigen . Möchten Sie auch wissen, wie Sie GAC hinzufügen und daraus entfernen .

Zur Installation schreiben wir diese Zeilen in die Eingabeaufforderung, indem wir Folgendes öffnen Visual Studio command prompt: -

gacutil /i [assembly path]

Zum Deinstallieren benötigen wir jedoch nur:

gacutil /u [assembly name]

Warum?

Rohit Vipin Mathews
quelle
Wenn Sie zu einem der Assembly-Ordner im Windows-Verzeichnis wechseln und einen gesuchten DLL-Namen in die Suchleiste (des Datei-Explorers) eingeben, sollten diese angezeigt werden.
JakeJ

Antworten:

135

Installieren:

gacutil -i "path_to_the_assembly"

Aussicht:

Öffnen Sie im Windows Explorer-Ordner

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

ODER gacutil –l

Wenn Sie eine Baugruppe installieren möchten, müssen Sie angeben, wo gacutilsie zu finden ist, damit Sie auch einen vollständigen Pfad angeben können. Wenn sich eine Assembly bereits in GAC befindet, gacutilkennen Sie einen Ordnerpfad, sodass nur ein Assemblyname erforderlich ist.

MSDN:

sll
quelle
4
Beachten Sie, dass für .NET 4.0 der GAC-Speicherort jetzt lautet:% windir% \ Microsoft.NET \ Assembly \
Alex Nolasco
57

Ich bin einen Tag zu spät und einen Dollar zu kurz. Wenn Sie die Ordnerstruktur des GAC im Windows Explorer anzeigen möchten, können Sie dies mithilfe der Registrierung tun :

  1. Starten Sie regedit.
  2. Navigieren Sie zu HKLM \ Software \ Microsoft \ Fusion
  3. Fügen Sie ein DWORD mit dem Namen DisableCacheViewer hinzu und setzen Sie den Wert auf 1.

Für eine temporäre Ansicht können Sie den Ordnerpfad durch ein Laufwerk ersetzen, wodurch die speziellen Verzeichniseigenschaften entfernt werden.

  1. Starten Sie eine Eingabeaufforderung auf der Berechtigungsstufe Ihres Kontos .
  2. Geben Sie SUBST Z: C: \ Windows \ Assembly ein
    • Z kann ein beliebiger freier Laufwerksbuchstabe sein.
  3. Öffnen Sie den Arbeitsplatz und suchen Sie im neuen Ersatzverzeichnis.
  4. Geben Sie SUBST Z: / D ein, um das virtuelle Laufwerk von der Eingabeaufforderung zu entfernen

Warum Sie so etwas tun möchten, habe ich mit diesem Trick GAC-DLLs zwischen verschiedenen Computern verglichen, um sicherzustellen, dass sie wirklich gleich sind.

Rakuen42
quelle
Sie können die Bearbeitung der Registrierung mit Powershell automatisieren:
Textcape
Neues Element 'HKLM: \ Software \ Microsoft \ Fusion' -Force | New-ItemProperty -Name "DisableCacheViewer" -PropertyType DWord -Value 1 -Force | Out-Null
Textcape
40

Starten Sie das Programm "Ausführen" (Windows Vista / 7/8: Geben Sie es in die Suchleiste des Startmenüs ein) und geben Sie Folgendes ein: C:\windows\assembly\GAC_MSIL

Wechseln Sie dann in den übergeordneten Ordner (Windows Vista / 7/8: Klicken Sie in der Explorer-Leiste darauf), um alle GAC-Dateien in einem normalen Explorer-Fenster anzuzeigen. Sie können jetzt wie überall Dateien kopieren, hinzufügen und entfernen.

Julius Kunze
quelle
Vielen Dank - es erlaubte mir, Windows Explorer zu verwenden, der seit .NET 4
Dave Friedel
8

Um die Dateien anzuzeigen, durchsuchen Sie sie einfach über die Eingabeaufforderung ( cmd), z.

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

Verwenden Sie das Tool, um Dateien zum GAC hinzuzufügen und daraus zu entfernen gacutil

Klaus Byskov Pedersen
quelle
Ich möchte es als normalen Ordner anzeigen.
Rohit Vipin Mathews
@CodingMastero Es ist KEIN normaler Ordner!
Klaus Byskov Pedersen
Können wir nicht einen Hack verwenden, um ihn als normal anzusehen?
Rohit Vipin Mathews
@CodingMastero Nein, das kannst du nicht. Sie können es wie oben angegeben über die Eingabeaufforderung anzeigen.
Klaus Byskov Pedersen
1
Ja. Entschuldigung, ich war hier möglicherweise nicht klar. Sie können C:\Windows\assemblydas .NET 4.0-GAC nicht zum Durchsuchen verwenden. Natürlich können Sie es auch weiterhin mit .NET 2/3 verwenden (sofern dies ebenfalls installiert ist). Es gibt keine vergleichbaren Shell-Erweiterungen (AFAIK), die für das neue C:\Windows\Microsoft.NET\assemblyVerzeichnis auf die gleiche Weise funktionieren .
Christian.K
5

Sie installieren als Baugruppen mit:

  • Ein Setup-Programm, das Sie für Ihre Anwendung erstellen.
  • Verwenden des gacutil.exeTools mit der -iOption über die Befehlszeile.
  • Ablegen der Assembly %windir%\Assembly(nur bis zu .NET 3.5, CLR 2.0)

Sie können den Inhalt des GAC folgendermaßen anzeigen:

  • Das gacutil.exeTool mit der -lOption.
  • Für .NET 2.0, 3.0 und 3.5 (CLR 2.0) %windir%\assemblywird der Windows Explorer verwendet.

Beachten Sie, dass sich der (physische) GAC-Speicherort für .NET 4.0 geändert hat. Es ist nicht mehr in %windir%\Assembly, aber jetzt in %windir%\Microsoft.NET\assembly. Sie sollten jedoch niemals Code schreiben, der vom physischen Standort abhängt, da dies angesichts der verfügbaren Tools kaum erforderlich ist (abgesehen von einigen "coolen" selbst entwickelten Systemdiagnosetools).

Christian.K
quelle
Neben gacutil.exedem einzigen anderen verfügbaren Tool, das mir bekannt ist, ist fusion.dll.
Scott Solmer