Jak wyodrębnić zespół z GAC?

Mam do czynienia z pakietem, który instaluje zestawy bezpośrednio w GAC (np. gdzieś głęboko w %windows% / assembly).

Jak usunąć rzeczywisty assembly (DLL) z GAC do normalnego systemu plików?

Dzięki.
Author: starblue, 2009-04-03

15 answers

Skorzystałem z porad z tego artykułu aby uzyskać montaż z GAC.

Get DLL Out of the GAC

DLLs once wdrożony w GAC (zwykle znajduje się na c:\windows\assembly) can ' t be viewed lub używany jako zwykły plik DLL. Oni nie może być bezpośrednio odwołany z VS projekt. Deweloperzy zazwyczaj zachowują kopia oryginalnego pliku DLL i zapoznaj się z nim w projekcie na czas rozwoju (projektowania), który wykorzystuje montaż z GAC podczas run-time projektu.

Podczas wykonywania (run-time), jeśli montaż jest podpisany i wdrożony w GAC CLR automatycznie odbiera montaż z GAC zamiast biblioteki DLL przywołanej podczas czas projektowania w VS. w przypadku, gdy deweloper usunął oryginalny DLL albo nie mam go z jakiegoś powodu, istnieje sposób na uzyskanie pliku DLL od GAC. Wykonaj następujące kroki aby skopiować DLL z GAC

  1. Run regsvr32 / u C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\shfusion.dll

    • shfusion.dll jest rozszerzeniem Eksploratora DLL, które daje odrębny zajrzyj do folderu GAC. Niezarejestrowana strona ten plik usunie zespół cache viewer i folder GAC będzie być wtedy widoczne jako każdy normalny folder w explorer.
  2. Otwórz "% windir% \ assembly \ GAC_MSIL".

  3. Przejdź do folderu DLL w głębi, aby znaleźć DLL.

  4. Kopiuj DLL gdzieś na dysku twardym i skierować go stamtąd w swoim projekt

  5. Uruchom " regsvr32 % windir% \ Microsoft. NET \ Framework\<.> \ shfusion.dll " do ponownie zarejestruj shfusion.plik dll i / align = "left" / GAC.

 144
Author: Andrew Hare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-16 17:17:52

Opisywana tutaj metoda jest bardzo prosta:

Http://andreasglaser.net/post/2008/08/05/Extract-assembly-from-Global-Assembly-Cache-(GAC)-with-network-drive-mapping.aspx

Streszczenie z artykułu:

  • Map A Network Drive (Explorer - > Tools)
    • Map do katalogu \ nazwa serwera\(\\YourServer\C$\Windows\Assembly)
  • nie ma potrzeby udostępniania, jeśli jesteś administratorem
  • przejdź do napędu i wyodrębnij swój zespół
 107
Author: Sadjad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-07 15:56:34

Otwórz wiersz polecenia i wpisz:

cd  c:\windows\assembly\GAC_MSIL 

xcopy . C:\GacDump /s /y

To powinno dać zrzut całego GAC

Smacznego!
 74
Author: Deepak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-20 12:22:12

Tak.

Dodaj Klucz Rejestru DisableCacheViewer

Utwórz nowy klucz dword w HKLM \ Software \ Microsoft \ Fusion\ o nazwie DisableCacheViewer i ustaw jego wartość [DWORD] na 1.

Wróć do Eksploratora Windows do folderu assembly i będzie to normalny widok systemu plików.

 22
Author: mccrager,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-03 17:37:58

Myślę, że najprostszym sposobem jest zrobić to za pomocą linii poleceń, jak wspomina David. Jedyną sztuczką jest to .dll nie znajduje się po prostu na C:\Windows\Assembly. Musisz przejść do C:\Windows\Assembly\GAC\[ASSEMBLY_NAME]\[VERSION_NUMBER]_[klucz publiczny]. Następnie możesz wykonać kopię używając:

Copy [ASSEMBLY_NAME].dll C:\ (lub gdziekolwiek chcesz)

Mam nadzieję, że to pomoże.

 15
Author: AdamB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-03 17:47:55

Łatwy sposób znalazłem jest, aby otworzyć wiersz polecenia i przeglądać folder wspomnieć, aż znajdziesz DLL chcesz - można następnie użytkownika polecenia kopiowania, aby go out. Eksplorator Windows ma "pomocny" specjalny widok tego folderu.

 12
Author: David M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-03 17:34:34

Otwórz Uruchom Następnie wpisz %windir%\assembly\GAC_MSIL, to otworzy twoje biblioteki DLL w widoku folderów możesz następnie przejść do folderu o nazwie dll i otworzyć go, znajdziesz swój plik dll i łatwo go skopiować

 6
Author: Hazem Abdel Wahab,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-08 13:21:47

Jestem autorem PowerShell GAC. Z PowerShell GAC można wyodrębnić zespoły z GAC bez zależności od wewnętrznych GAC, takich jak zmiana struktur folderów.

Get-GacAssembly SomeCompany* | Get-GacAssemblyFile | Copy-Item -Dest C:\Temp\SomeCompany
 4
Author: Lars Truijens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-21 20:09:42

Ten MSDN blog post opisuje trzy oddzielne sposoby wyodrębniania biblioteki DLL z GAC. Przydatne podsumowanie dotychczasowych metod.

 3
Author: MagicAndi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-28 14:36:06

Użyj zamiast tego przeglądarki plików "Total Commander".

  1. włącz ustawienie "Pokaż ukryte / systemowe pliki" w Total Commander
  2. Przejdź do "c:\windows\assembly"
  3. Kopia
 2
Author: Max Wikström,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-27 12:33:05

Ze skryptu Powershell, możesz spróbować tego. Miałem tylko jedną wersję montażu w GAC, więc to działało dobrze.

cd "c:\Windows\Microsoft.NET\assembly\GAC_MSIL\"
Get-ChildItem assemblypath -Recurse -Include *.dll |  Copy-Item -Destination "c:\folder to copy to"

Gdzie ścieżka montażu może używać symboli wieloznacznych.

 2
Author: Phil Kermeen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-25 09:51:31

Myślę, że wymyśliłem sposób, aby zajrzeć do wnętrza GAC bez modyfikowania rejestru lub za pomocą wiersza poleceń, powershell, lub innych programów:

Utwórz nowy skrót (w dowolne miejsce). Następnie zmodyfikuj skrót, aby cel był:

%windir%\assembly\GAC_MSIL\System

Otwarcie tego skrótu przeniesie Cię do folderu systemowego wewnątrz GAC (który każdy powinien mieć) i ma wspaniały efekt uboczny pozwalając Ci przejść do wyższego katalogu, a następnie przeglądać w dowolnym innym folderze, który chcesz (i zobacz pliki dll, itp.)

Przetestowałem to na windows 7 i windows server 2012.

Uwaga: nie pozwoli Ci używać tego celu podczas tworzenia skrótu, ale pozwoli Ci go edytować.

Smacznego!
 2
Author: Bolo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-11 19:26:09

Wystarczy przejść do C:\Windows znajdź folder [assembly] kliknij prawym przyciskiem myszy i wybierz Dodaj do archiwum

Poczekaj trochę

Vola Masz plik archiwum zawierający wszystkie zespoły w GAC

 1
Author: tsadigov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-20 08:52:55

Jeszcze jeden kierunek-po prostu rozpakuj plik MSI i zdobądź w ten sposób smakołyki. Uchroni Cię przed ewentualnym odinstalowaniem . . .

 0
Author: Wyatt Barnett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-13 19:44:58

Kopiowanie z linii poleceń jest niepotrzebne. Wpisałem nazwę DLL z wyszukiwania okna startowego. Wybrałem Zobacz więcej wyników. Ten w GAC został zwrócony w oknie wyszukiwania. Kliknąłem prawym przyciskiem i powiedziałem Otwórz lokalizację pliku. Otwierał się w normalnym Eksploratorze Windows. Skopiowałem plik. Zamknąłem okno. Załatwione.

 0
Author: Scott Shaw-Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-09 22:37:06