Es gibt ein Paket, mit dem ich mich befassen muss, das Assemblys direkt im GAC installiert (z. B. irgendwo tief in% windows% / Assembly).
Wie kann ich die eigentliche Assembly (die DLL) aus dem GAC in das normale Dateisystem austreiben?
Vielen Dank.
quelle
shfusion.dll
derDllInstall()
Einstiegspunkt, derregsvr32
beim Übergeben der/i
Option aufgerufen wird, nicht unterstützt . Wenn Sie diese Option weglassen, können Sie die Komponente erfolgreich neu registrieren.Die hier beschriebene Methode ist sehr einfach:
http://andreasglaser.net/post/2008/08/05/Extract-assembly-from-Global-Assembly-Cache-(GAC)-with-network-drive-mapping.aspx
Zusammenfassung aus Artikel:
\\YourServer\C$\Windows\Assembly
)quelle
Öffnen Sie die Eingabeaufforderung und geben Sie Folgendes ein:
Dies sollte den Dump des gesamten GAC ergeben
Genießen!
quelle
Ja.
Fügen Sie den DisableCacheViewer-Registrierungsschlüssel hinzu
Erstellen Sie unter HKLM \ Software \ Microsoft \ Fusion \ einen neuen Dword-Schlüssel mit dem Namen DisableCacheViewer und setzen Sie den Wert [DWORD] auf 1.
Kehren Sie zum Windows-Explorer zum Assembly-Ordner zurück. Dies ist die normale Dateisystemansicht.
quelle
Ich denke, der einfachste Weg ist es, es über die Kommandozeile zu tun, wie David es erwähnt. Der einzige Trick ist, dass sich die DLL nicht einfach unter C: \ Windows \ Assembly befindet. Sie müssen zu C: \ Windows \ Assembly \ GAC \ [ASSEMBLY_NAME] \ [VERSION_NUMBER] _ [PUBLIC KEY] navigieren. Sie können dann eine Kopie erstellen mit:
Kopieren Sie [ASSEMBLY_NAME] .dll c: \ (oder einen beliebigen Speicherort)
Hoffentlich hilft das.
quelle
Ich habe festgestellt, dass es einfach ist, die Eingabeaufforderung zu öffnen und den von Ihnen genannten Ordner zu durchsuchen, bis Sie die gewünschte DLL gefunden haben. Anschließend können Sie den Befehl copy verwenden, um sie herauszuholen. Windows Explorer bietet eine "hilfreiche" Sonderansicht dieses Ordners.
quelle
Öffnen Sie RUN und geben
%windir%\assembly\GAC_MSIL
Sie Folgendes ein. Dadurch werden Ihre DLLs in der Ordneransicht geöffnet. Sie können dann zu Ihrem Ordner mit dem Namen DLL navigieren und ihn öffnen. Sie finden Ihre DLL-Datei und können sie einfach kopierenquelle
Ich bin der Autor von PowerShell GAC . Mit PowerShell GAC können Sie Assemblys aus dem GAC extrahieren, ohne von GAC-Interna abhängig zu sein, z. B. das Ändern von Ordnerstrukturen.
quelle
Dieser MSDN-Blogbeitrag beschreibt drei verschiedene Möglichkeiten zum Extrahieren einer DLL aus dem GAC. Eine nützliche Zusammenfassung der bisher gegebenen Methoden.
quelle
Verwenden Sie stattdessen den Dateibrowser "Total Commander".
quelle
Ich glaube, ich habe einen Weg gefunden, um in das GAC zu schauen, ohne die Registrierung zu ändern oder die Befehlszeile, Powershell oder andere Programme zu verwenden:
Erstellen Sie eine neue Verknüpfung (zu einer beliebigen Stelle). Ändern Sie dann die Verknüpfung so, dass das Ziel wie folgt lautet:
Das Öffnen dieser Verknüpfung führt Sie zum Systemordner im GAC (den jeder haben sollte) und hat den wunderbaren Nebeneffekt, dass Sie in ein höheres Verzeichnis wechseln und dann in einen anderen gewünschten Ordner navigieren können (und die DLL-Dateien usw. anzeigen können).
Ich habe dies unter Windows 7 und Windows Server 2012 getestet.
Hinweis: Sie können dieses Ziel beim Erstellen der Verknüpfung nicht verwenden, aber Sie können es bearbeiten.
Genießen!
quelle
Navigieren Sie einfach zu C: \ Windows. Suchen Sie den Ordner [Assembly] mit der rechten Maustaste und wählen Sie Zum Archiv hinzufügen
warte ein bisschen
vola Sie haben eine Archivdatei, die alle Assemblys in Ihrem GAC enthält
quelle
In einem Powershell-Skript können Sie dies versuchen. Ich hatte nur eine einzige Version der Baugruppe im GAC, daher funktionierte dies einwandfrei.
Dabei kann der Assemblypfad Platzhalter verwenden.
quelle
Eine andere Richtung - entpacken Sie einfach die MSI-Datei und holen Sie sich die Goodies auf diese Weise. Spart Ihnen die eventuelle Deinstallation. . .
quelle
Das Kopieren von einer Befehlszeile ist nicht erforderlich. Ich habe den Namen der DLL aus der Startfenstersuche eingegeben. Ich habe See More Results gewählt. Der im GAC wurde im Suchfenster zurückgegeben. Ich habe mit der rechten Maustaste darauf geklickt und den Speicherort der geöffneten Datei angegeben. Es wurde im normalen Windows Explorer geöffnet. Ich habe die Datei kopiert. Ich schloss das Fenster. Getan.
quelle