. jak .NET

.NET & stuff blog by Maciej "Procent" Aniserowicz

Zagadka - jak odczarować GAC?

2 kwietnia 2008 15:33 w kategorii: pro
Tagi: ,

Co się stanie, gdy klikniemy po kolei: Start -> Mój komputer -> C:\ -> windows -> assembly ? No jasne - zobaczymy zawartość GAC:

Jak zedrzeć ten tajemniczy, dziwny wygląd z owego katalogu? Na przykład - używając Total Commandera. Można jednak sprawić, by i w zwykłym windowsowym exploratorze katalog stracił swą magię:

No i to jest właśnie zagadka - jak to osiągnąć? Jak zrobić, katalog assembly nie był już takim "cfaniakiem"? Podpowiem, że w tym celu schodzimy tam, gdzie najcieplej...
Kiedyś za rozwiązanie zagadki oferowałem uśmiech prezesa, jednak teraz, z braku pomysłu, nagrodą niechaj będzie zwykła satysfakcja - i moja i chwalebnego komentatora znającego odpowiedź:).


UPDATE 03/04/2008 Dzięki wszystkim za zainteresowanie. Odpowiedzi, której oczekiwałem, udzielił pgi - chodzi mianowicie o modyfikację rejestru tak jak na rysunku (dodanie różnej od zera DWORD_VALUE o nazwie DisableCacheViewer do klucza HKLM\Software\Microsoft\Fusion):

Jednak w komentarzach, ło-ho-ho, można znaleźć także inne rozwiązania.


Komentarze

tom

2 kwietnia 2008 16:28

Na obrazku jest podpowiedź ;)

moth

2 kwietnia 2008 17:04

Otwieramy ten folder w Total Commanderze i np. zmieniamy rozszerzenie pliku Desktop.ini na np. bak

tom

2 kwietnia 2008 17:15

moth, no to nie wystarczy

Procent

2 kwietnia 2008 17:16

Dodatkowe założenie "w domyśle" - mamy do dyspozycji tylko goły Windows, bez wspomagaczy w postaci TC. Poza tym na screenie jest Desktop.ini - jego zawartości ani nazwy nie ruszałem:).

apl

2 kwietnia 2008 20:03

Może dać mu buzi, potrzeć albo grzecznie poprosić?

Tak na poważnie, znacie lepszą/szybszą/prostszą metodę, niż wyłączenie kłopotliwego rozszerzenia powłoki w rejestrze?

kazikkuta

2 kwietnia 2008 20:09

czysty windows, a na drugim obrazku rzeczywiście jest podpowiedź ;)

Tom

2 kwietnia 2008 22:35

:) Coś wygląda na to, że się przyda ;)

:)

2 kwietnia 2008 22:43

Dziwna sprawa ;p W Viscie w katalogu C:\Windows\ nie ma katalogu Assembly, a plik Assembly, ktory jest jakby katalogiem ;) Bo przy innych normalnych folderach jest napisane 'Folder plikow' a przy Assembly jest napisane 'Plik' ;]

SarmaX

2 kwietnia 2008 22:49

Witam. Wystarczy wpisać 'C:\Windows\Assembly\gac' i dać katalog wyżej ;)

pozdrawiam

tom

3 kwietnia 2008 11:34

SarmaX, u mnie nie działa w XP taki sposób

pgi

3 kwietnia 2008 12:19

HKLM\Software\Microsoft\Fusion\
dodać wartość DWORD DisableCacheViewer i ustawić na 1
:)

apl

3 kwietnia 2008 12:26

@tom, u mnie w Viście działa metoda zaproponowana przez SarmaXa, ale tylko pod warunkiem, że użyjemy "secret handshake" uruchamiając eksplorator. Ów tajemniczy gest polega na wpisaniu "C:\Windows\assembly\GAC" w oknie "Uruchom" lub w polu wyszukiwarki po rozwinięciu menu "Start". Inaczej mówiąc, jeśli otworzyliśmy eksplorator od razu w folderze wewnątrz GAC, możemy się cofnąć i odsłonić prawdziwą zawartość folderu assembly. W innym przypadku, np. próbując nawigować do tego któregoś z wewnętrznych folderów z poziomu paska adresu, system zwróci informację, że nie ma takiej lokalizacji w systemie plików.

pgi

3 kwietnia 2008 14:20

Jest jeszcze jedna opcja tzn. rename pliku:
%windir%\Microsoft.NET\Framework\v2.0.50727\shfusion.dll

Procent

3 kwietnia 2008 14:54

@tom, kazik:
Przyznam szczerze że nie wiem co macie na myśli pisząc o podpowiedzi na drugim obrazku:). Ale bardzo chętnie się dowiem.

@apl:
Zmieniłem kursor na tą seksowną rączkę z wystającym palcem i tarłem katalog assembly, ale jedyne co osiągnąłem to niemiarowe drżenie myszki i jednostajne wysuwanie i chowanie cdromu - dobrze że nie mam pada z force feedback. Dawać buzi nie próbowałem, po doświadczeniach z kursorem przestraszyłem się...;)

@wiele osób:
U mnie także (XP) nie da się wejść bezpośrednio do \GAC, ale sposób przedstawiony przez apla działa.

@wszyscy:
Pierwotnie chodziło mi o pierwsze rozwiązanie przedstawione przez pgi - czyli dodanie klucza w rejestrze (btw: wartość nie musi wynosić 1, wystarczy że będzie różna od 0). Jednak zawsze warto poznać nowe spsoby:). Wieczorem stosownie uaktualnię post.

Po takiej reakcji już jestem ciekaw ile nowych rzeczy dowiem się zadając następną (wydaje mi się że trudniejszą) zagadkę - ale to najprędzej w przyszłym tygodniu:).

SarmaX

3 kwietnia 2008 16:31

Panowie, piszac, ze trzeba wpisac 'C:\Windows\Assembly\gac' i dać katalog wyżej zapomnialem dopisac, ze trzeba to polecenie wpisac w 'Uruchom' z menu start ;)

Tom

3 kwietnia 2008 21:25

@Sarmax:
Działa! W XP! 'secret handshake', dobre!

kazikkuta

3 kwietnia 2008 22:35


Procent wrote:
Przyznam szczerze że nie wiem co macie na myśli pisząc o podpowiedzi na drugim obrazku:).

Nie wiem jak u Ciebie ale u mnie wystarczy udostępnić ten folder.

Procent

3 kwietnia 2008 22:44

@kazikkuta:
Jedynym efektem klikania na opcji 'share this folder' jest pojawienie się okna Properties -> bez możliwości udostępnienia. Chyba że coś robię źle, ale nie wiem jak można źle kliknąć 'share this folder':).

kazikkuta

3 kwietnia 2008 23:10

Przepraszam... coś mi się chyba pokrzaczyło...

Tom

5 kwietnia 2008 13:17

No ja mialem na mysli ze widac na drugim obrazku Desktop.ini. No a jak jest Desktop.ini to albo to jest wirus, albo sposob prezentacji foldera ;)

Gutek

9 kwietnia 2008 13:10

;) to ja mam tez zagadke:
1) zdejmujecie sobie shell support z GAC
2) nie macie VS

jak dodacie dll do GAC?

apl

10 kwietnia 2008 16:30

Przy pomocy gacutil: gacutil /i widgets.dll

Gutek

10 kwietnia 2008 18:36

nie zabardzo :) nie ma gacutil bez VS - musisz zainstalowac SDK od .NET Framework ktore sa jedynie dostepne w instalce od VS :)

szukajcie dalej :)

apl

10 kwietnia 2008 19:13

Windows SDK, a wraz z nim gacutil, jest jak najbardziej "ściągalne" -

www.microsoft.com/.../details.aspx

ale jeśli naprawdę nie chcemy korzystać z tego narzędzia, możemy posłużyć się takim API -

msdn2.microsoft.com/.../...publish.gacinstall.aspx

Gutek

10 kwietnia 2008 20:50

Ok, zgadzam sie. w najnowszym SDK zeczywiscie to jest dostepne. Tylko ze nie wszyscy o tym jeszcze wiedza jako ze jest to "nowosc" jezeli chodzi o zawarcie gacutil od Windows SDK, zreszta Windows SDK to teraz ta naprawde takze .NET Framework SDK.


Zas co do: Publish..::.GacInstall to wlasnie o to mi chodzilo :)

wiec % dawaj nagrody ;)

bo to ze sobie zrobimy taka zmiane by GAC ladnie wygladal, jeszcze nie konczy naszych pozostalych mek ;)

tak pozatym moh dobrze gadal i mozna sobie zrobic prosty skryt bat:

ShowAsmExStyle.bat
cd /d %windows%\assembly
attrib -r -h -s desktop.ini
ren desktop.ini desktop.bak

ShowAsmFusionStyle.bat
cd /d %windows%\assembly
attrib -r -h -s desktop.ini
ren desktop.bak desktop.ini

dzieki czemu nie musimy sie meczyc z rejestrem za kazdym razem

Choc tez mozna stworzyc skrypt reg. ale ja jestem za tym by robic sobie virtual drive:
subst g: %windir%\assembly

i teraz mamy dostep za pomoca Fusion jak i normalnie. PRoste i wygodne. IMHO najlepsze rozwiazanie :)

Procent

10 kwietnia 2008 21:03

Norrrmalnie Gutek zamknąłeś temat definitywnie!
A co do nagród... tak jak napisałem w poście - nie masz satysfakcji?:) Bo jak nie to odstąpię trochę swojej, a co tam.

Gutek

10 kwietnia 2008 21:08

byl kiedy taki kabaret ;) "No i mamy satysfakcje, nasi nawet kosmitow [fragment uciety]" ;)

Gutek

10 kwietnia 2008 21:11

% nie wiem czemu ale przy powiadomieniach o komentarzach dostaje po3 maile.

Procent

10 kwietnia 2008 21:18

Kmieciu rulez:)

A co do maili to ja też nie wiem czemu, modyfikacje BlogEngine ograniczaja sie u mnie do zmian w css i niektorych aspx, glebiej nawet nie zagladalem. Ale skoro srednio dzialaja powiadomienia mailem, srednio dziala RSS... to jeszcze przed chlopakami chyba troche pracy.

Dodaj komentarz


 

[b][/b] - [i][/i] - [u][/u] - [quote][/quote] - [code][/code]