Hanya mencari ikhtisar singkat GAC untuk orang awam, bukan tautan.
187
Benar, jadi pada dasarnya ini adalah cara untuk menjaga agar DLL dapat diakses secara global tanpa khawatir tentang konflik. Tidak ada lagi DLL Hell. Setiap arsitektur dan versi mendapatkan tempat tinggalnya sendiri.
Itu juga mendapatkan caranya sendiri untuk menjelajahinya di Explorer, jadi jika Anda pergi ke
C: \ Windows \ assembly
Di windows explorer ia mencantumkan semua DLL.
Tetapi jika Anda menyalakan cmd
, Anda dapat melihat bagaimana itu benar-benar terstruktur:
C: \ Users \ tritter> cd C: \ Windows \ assembly C: \ Windows \ assembly> dir Direktori C: \ Windows \ assembly 07/20/2009 02:18 PM <DIR> GAC 06/17/2009 16:22 PM <DIR> GAC_32 06/17/2009 16:22 PM <DIR> GAC_64 06/17/2009 16:22 PM <DIR> GAC_MSIL ...menggunting... 0 File 0 byte 9 Dir (s) 90.538.311.680 byte gratis C: \ Windows \ assembly> cd GAC_64 C: \ Windows \ assembly \ GAC_64> dir Direktori C: \ Windows \ assembly \ GAC_64 06/17/2009 16:22 PM <DIR>. 06/17/2009 16:22 PM <DIR> .. 01/19/2008 09:54 AM <DIR> blbproxy ...menggunting... 01/19/2008 09:54 AM <DIR> srmlib 01/19/2008 06:11 AM <DIR> System.Data 01/19/2008 06:11 AM <DIR> System.Data.OracleClient ...menggunting... 0 File 0 byte 34 Dir (s) 90.538.311.680 byte gratis C: \ Windows \ assembly \ GAC_64> cd System.Data C: \ Windows \ assembly \ GAC_64 \ System.Data> dir Direktori C: \ Windows \ assembly \ GAC_64 \ System.Data 01/19/2008 06:11 AM <DIR>. 01/19/2008 06:11 AM <DIR> .. 04/11/2009 12:20 PM <DIR> 2.0.0.0__b77a5c561934e089 0 File 0 byte 3 Dir (s) 90.538.311.680 byte gratis 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> dir Direktori C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089 04/11/2009 12:20 PM <DIR>. 04/11/2009 12:20 PM <DIR> .. 04/11/2009 12:12 PM 3.008.512 System.Data.dll 1 File 3.008.512 byte 2 Dir (s) 90.538.311.680 byte gratis C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089>
Di sini Anda dapat melihat versi 2.0.0.0__b77a5c561934e089 dari System.Data.
DLL diidentifikasi oleh 5 bagian:
Meskipun 3 yang pertama umumnya yang besar.
GAC = Global Assembly Cache
Mari kita jabarkan:
Jadi GAC harus menjadi tempat untuk menyimpan pustaka kode sehingga dapat diakses oleh semua aplikasi yang berjalan pada mesin.
sumber
Tembolok Perakitan Global
Hal-hal yang dikandung MSDN mungkin mengejutkan Anda ... Anda biasanya dapat membacanya seperti artikel. Bit langsung dan paling penting di bagian atas, detail rumit lebih dalam. Ini jelas menjelaskan lebih baik daripada yang saya bisa.
Perhatikan bahwa Visual Studio menampilkan semua DLL di GAC di .NET tab pada jendela Referensi . (Klik kanan pada proyek di Solution Explorer dan pilih Add Reference.) Ini akan memberi Anda ide yang lebih menarik.
sumber
Pustaka DLL terpusat.
sumber
Global Assembly Cache (GAC) adalah folder di direktori Windows untuk menyimpan .NET assemblies yang secara khusus dirancang untuk dibagikan oleh semua aplikasi yang dijalankan pada suatu sistem. Assemblies dapat dibagikan di antara banyak aplikasi pada mesin dengan mendaftarkannya di cache Assembly global (GAC). GAC adalah mesin lebar cache lokal majelis yang dikelola oleh .NET Framework.
sumber
Aplikasi Exe, pertama-tama, referensi dari direktori saat ini ke subdirektori. Dan kemudian, direktori sistem. Direktori sistem VS6.0 adalah ..windows / system32. Direktori sistem .NET seperti jalur GAC di bawah ini.
Jalur GAC
1) C: \ Windows \ Assembly (untuk .NET 2.0 ~ 3.5)
2) C: \ Windows \ Microsoft.NET \ assembly (untuk .NET 4.0)
Cara memasang rakitan ke GAC (sebagai Administrator)
1) Seret dan Jatuhkan
2) Gunakan GacUtil.exe dengan Visual Studio Command Prompt
Cara menghapus instalan perakitan dari GAC (sebagai Administrator)
sumber
Ini seperti registri COM dilakukan dengan benar, sehubungan dengan file fisik serta informasi antarmuka dan lokasi mereka. Dalam COM, file ada di mana-mana, dengan metadata terpusat. GAC memusatkan tembakan bang.
sumber
GAC (Global Assembly Cache) adalah tempat semua .NET assembly berada.
sumber