wtorek, 4 października 2011

Jak skopiować plik z GAC (Global Assembly Cache)?

Dziś stanąłem przed zadaniem skopiowania konkretnej biblioteki DLL z Global Assembly Cache (czyli de facto z folderu C:\Windows\Assembly). Była mi ona potrzebna do uruchomienia pewnej aplikacji na innym komputerze, a niestety ta wersja pliku nie była łatwo dostępna w żaden inny sposób.


Jednym z rozwiązań problemu jest dostęp do wspomnianego folderu poprzez linię komend. Tam możemy nawigować po strukturze podkatalogów. Uruchamiamy linię komend CMD i wpisujemy:

cd C:\Windows\Assembly

a następnie:

dir

żeby zapoznać się z listą podkatalogów. Plik, który szukamy, będzie zlokalizowany w folderze GAC, GAC_32/GAC_64 lub GAC_MSIL. Przeszukiwanie katalogów w ten sposób jest jednak mało wygodne, więc przydałaby się możliwość wizualnego nawigowania...

Rozwiązanie




1. Otwieramy Windows Explorera, a następnie z menu: Narzędzia -> Mapuj dysk sieciowy...
Mapowanie dysku sieciowego


2. Wybieramy literę dla dysku, a w polu Folder wpisujemy:

\\[nazwa_komputera]\c$\windows\assembly

W moim przypadku było to \\plshqgtr-pc\C$\windows\assembly.

3. Klikamy OK. Teraz, posługując się literą utworzonego dysku sieciowego lub wybierając go z listy dysków, możemy z łatwością nawigować po katalogach GAC, a także odnaleźć konkretny plik korzystając z systemowej wyszukiwarki.

5 komentarzy:

  1. WP7 blog » Blog Archive » Jak skopiować plik z GAC (Global Assembly Cache)?...

    Dziękujemy za publikację - Trackback z dotnetomaniak.pl...

    OdpowiedzUsuń
  2. Albo użyć jakiegoś normalnego programu do przeglądania folderów. Czyli np. Total Commander.

    OdpowiedzUsuń
  3. Fakt, ale dla mnie to nie jest normalny program ;) Miałem kilka podejść i nie dałem rady się do niego przekonać.

    OdpowiedzUsuń
  4. Można również wykorzystać zwykłe komendy "dir" i "copy" z linii poleceń "cmd" ... nie trzeba komplikować sprawy z mapowaniem dysków.

    OdpowiedzUsuń
  5. Wspomniałem o CMD w artykule, ale mapowanie dysku jest jednak wygodniejsze i raz wykonane - zostanie na zawsze :)

    OdpowiedzUsuń