Po prostu szukam krótkiego przeglądu GAC dla laika, a nie linku, proszę.
187
Zgadza się, więc w zasadzie jest to sposób na zapewnienie globalnej dostępności bibliotek DLL bez obaw o konflikty. Nigdy więcej DLL Hell. Każda architektura i wersja ma swoje własne miejsce do życia.
Ma również swój własny sposób przeglądania w Eksploratorze, więc jeśli idziesz do
C: \ Windows \ assembly
W Eksploratorze Windows wyświetla listę wszystkich bibliotek DLL.
Ale jeśli odpalisz cmd
, możesz zobaczyć, jak to naprawdę ma strukturę:
C: \ Users \ tritter> cd C: \ Windows \ assembly C: \ Windows \ assembly> reż Katalog C: \ Windows \ assembly 07/20/2009 14:18 <DIR> GAC 17/17/2009 16:22 <DIR> GAC_32 17/17/2009 16:22 <DIR> GAC_64 17/17/2009 16:22 <DIR> GAC_MSIL ...fantastyczna okazja... 0 plików 0 bajtów 9 Dir (s) 90.538.331.680 bajtów wolnych C: \ Windows \ assembly> cd GAC_64 C: \ Windows \ assembly \ GAC_64> reż Katalog C: \ Windows \ assembly \ GAC_64 17.06.2009, 16:22 <DIR>. 17/17/2009 16:22 <DIR> .. 01/19/2008 09:54 <DIR> blbproxy ...fantastyczna okazja... 01/19/2008 09:54 <DIR> srmlib 01/19/2008 06:11 <DIR> System.Data 01/19/2008 06:11 <DIR> System.Data.OracleClient ...fantastyczna okazja... 0 plików 0 bajtów 34 Dir (s) 90.538.331.680 bajtów wolnych C: \ Windows \ assembly \ GAC_64> cd System.Data C: \ Windows \ assembly \ GAC_64 \ System.Data> reż Katalog C: \ Windows \ assembly \ GAC_64 \ System.Data 01/19/2008 06:11 <DIR>. 01/19/2008 06:11 <DIR> .. 04/11/2009 12:20 <DIR> 2.0.0.0__b77a5c561934e089 0 plików 0 bajtów 3 Dir (s) 90.538.331.680 bajtów wolnych C: \ Windows \ assembly \ GAC_64 \ System.Data> cd 2.0.0.0__b77a5c561934e089 C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089> reż Katalog C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089 04/11/2009 12:20 <DIR>. 04/11/2009 12:20 <DIR> .. 04/11/2009 12:12 3 008 512 System.Data.dll 1 plik (i) 3 008 512 bajtów 2 Dir (s) 90,538 3131,680 bajtów za darmo C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089>
Tutaj możesz zobaczyć wersję 2.0.0.0__b77a5c561934e089 System.Data.
DLL jest identyfikowany przez 5 części:
Chociaż pierwsze 3 są na ogół duże.
GAC = globalna pamięć podręczna zestawu
Rozbijmy to:
Tak więc GAC musi być miejscem do przechowywania bibliotek kodów, aby były dostępne dla wszystkich aplikacji uruchomionych na komputerze.
źródło
Pamięć podręczna globalnego zestawu
Rzeczy, które zawiera MSDN, mogą cię zaskoczyć ... zwykle możesz przeczytać to jak artykuł. Proste i najważniejsze elementy u góry, misterne szczegóły głębiej. To z pewnością wyjaśnia to lepiej niż mogłem.
Zauważ, że Visual Studio wyświetla wszystkie biblioteki DLL w GAC na karcie .NET w oknie Odnośniki . (Kliknij prawym przyciskiem myszy projekt w Eksploratorze rozwiązań i wybierz Dodaj odniesienie.) To powinno dać ci bardziej namacalny pomysł.
źródło
Scentralizowana biblioteka DLL.
źródło
Global Assembly Cache (GAC) to folder w katalogu Windows do przechowywania zestawów .NET, które są specjalnie przeznaczone do współdzielenia przez wszystkie aplikacje uruchomione w systemie. Zespoły mogą być współużytkowane przez wiele aplikacji na komputerze, rejestrując je w globalnej pamięci podręcznej zestawów (GAC). GAC to lokalna pamięć podręczna zestawów obsługiwana przez system .NET Framework.
źródło
Aplikacja Exe, przede wszystkim, odniesienia z bieżącego katalogu do podkatalogu. A potem katalog systemowy. Katalog systemowy VS6.0 był ..windows / system32. Katalog systemowy .NET jest podobny do poniższej ścieżki GAC.
Ścieżka GAC
1) C: \ Windows \ Assembly (dla .NET 2.0 ~ 3.5)
2) C: \ Windows \ Microsoft.NET \ assembly (dla .NET 4.0)
Jak zainstalować zestaw w GAC (jako administrator)
1) Przeciągnij i upuść
2) Użyj GacUtil.exe z wierszem polecenia programu Visual Studio
Jak odinstalować zestaw z GAC (jako administrator)
źródło
To tak, jakby rejestr COM został wykonany poprawnie w odniesieniu do plików fizycznych, a także ich interfejsu i informacji o lokalizacji. W COM pliki były wszędzie ze scentralizowanymi metadanymi. GAC centralizuje strzelanie z huku.
źródło
GAC (Global Assembly Cache) to miejsce, w którym znajdują się wszystkie udostępnione zestawy .NET.
źródło