Sadece bir katman için GAC'a kısa bir genel bakış arıyorsanız, lütfen bir bağlantı değil..NET'te GAC nedir?
cevap
Doğru, yani temelde, DLL'leri çatışmaları endişelendirmeden dünya çapında erişilebilir bir yoludur. Artık DLL Cehennem yok. Her mimari ve sürüm, yaşamak için kendi yerini alır.
Aynı zamanda Explorer'da bunu göz atmak kendi yolu alır, bu yüzden
C giderseniz: pencerelerinde \ Windows \ montaj
tüm dll listeler kaşifi.
Ama cmd
kadar ateş edersen, sen gerçekten yapılandırılmış nasıl görebilirsiniz: Burada
C:\Users\tritter>cd C:\Windows\assembly C:\Windows\assembly>dir Directory of C:\Windows\assembly 07/20/2009 02:18 PM <DIR> GAC 06/17/2009 04:22 PM <DIR> GAC_32 06/17/2009 04:22 PM <DIR> GAC_64 06/17/2009 04:22 PM <DIR> GAC_MSIL ...snip... 0 File(s) 0 bytes 9 Dir(s) 90,538,311,680 bytes free C:\Windows\assembly>cd GAC_64 C:\Windows\assembly\GAC_64>dir Directory of C:\Windows\assembly\GAC_64 06/17/2009 04:22 PM <DIR> . 06/17/2009 04:22 PM <DIR> .. 01/19/2008 09:54 AM <DIR> blbproxy ...snip... 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 ...snip... 0 File(s) 0 bytes 34 Dir(s) 90,538,311,680 bytes free C:\Windows\assembly\GAC_64>cd System.Data C:\Windows\assembly\GAC_64\System.Data>dir Directory of 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(s) 0 bytes 3 Dir(s) 90,538,311,680 bytes free 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 Directory of 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(s) 3,008,512 bytes 2 Dir(s) 90,538,311,680 bytes free C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089>
Eğer System.Data sürümünü 2.0.0.0__b77a5c561934e089 görebilirsiniz.
Bir DLL 5 bölümden tanımlanır:
- Adı
- Versiyon
- Mimarlık
- Kültür
- Açık Anahtar
ilk 3 genellikle büyük olmasına rağmen olanlar.
"dll cehennem" den kaçınarak, global başvuru kaynağı .dlls için yeni bir yol olduğunu belirtmek için bir +1 olsun. (Cehennemdeyken neyin cehenneme gittiğini ve GAC'ın etrafından nasıl geçtiğini anlamanız daha iyi bir cevap olurdu ... bunun temel taslağı var ... ama ben sadece sıkılaştım. dizin yapısını ekleyin ve dll'nin nasıl tanımlandığını ve benzersiz olduğunu biraz ekleyin) Çok olumsuz gelmek istemiyorum ... +1 verdim! – Beska
Sadece bir bağlantı sağlamayın:]. Cevabınız ile ilgili soru, "GAC_64" dizin adıyla belirtilen "3. Mimari" dir? Ve bu durumda Boşluk kültürüdür - "__" altçizgi arasındaki değer nedir? –
GAC yalnızca .NET uygulamaları için var mı? –
ortak dil çalışma zamanı yüklü Her bilgisayar bir makine genelindeki kod önbelleği genel derleme önbelleği denilen vardır. Genel derleme önbellekleri, bilgisayarında bilgisayarında paylaşılan çeşitli uygulamalar tarafından özel olarak paylaşımlarını derler.
Montajları ürününü, yalnızca ihtiyaç duyduğunuzda genel derleme önbelleğine yükleyerek paylaşmalısınız. Genel bir kılavuz olarak, montajı açık bir şekilde paylaşmadıkça, bağımlılıklarını özel olarak saklayın ve dizini uygulamada dizini bulun. Ayrıca, numaralı derlemelerini, COM interop veya unmanaged kod için erişilebilir hale getirmek için genel derleme önbelleğine yüklemek gerekli değildir.
MSDN'in içerdiği şeyler sizi şaşırtabilir ... genellikle bir makale gibi okuyabilirsiniz. Üstteki basit ve en önemli bitler, karmaşık detaylar daha derine iner. Kesinlikle bunu yapabildiğimden daha iyi açıklıyor.
Visual Studio'nun, Başvurusu penceresinin .NET sekmesindeki GAC'deki tüm DLL dosyalarını görüntülediğini unutmayın. (Solution Explorer'da bir projeye sağ tıklayın ve Referans Ekle'yi seçin.) Bu size daha makul bir fikir vermelidir.
Hiç bağlantı olmadığını söyledi, kendi sözlerinle ilgili bir açıklama istedi. – user142350
Bağlantı yok dedi ... –
Gönderinin orijinal versiyonunda (hızlıca düzenlediğine inanıyorum), bu belirtilmemişti! – Noldorin
Merkezi DLL kitaplığı.
GAC = genel birleştirme önbelleği
en yıkmak edelim: Küresel
- -
- düzeneği, tüm makine için geçerlidir - NET onun kod kitaplıkları (DLL)
- adlandırdığı önbellek - daha hızlı/ortak erişim için öğeleri depolamak için bir yer
GAC, depolanacak bir yer olmalı Kod kütüphaneleri, böylece makinede çalışan tüm uygulamalara erişebilirler.
Bu, fiziksel dosyalarının yanı sıra arabirimleri ve konum bilgileriyle ilgili olarak doğru yapılan COM kayıt defteri gibidir. COM'da, dosyalar her yerdeydi ve merkezi meta veriler vardı. GAC, patlama ateşini merkezileştiriyor.
GAC (Genel Kurulum Önbelleği), tüm paylaşılan .NET derlemesinin bulunduğu yerdir.
Genel Kurul Önbelleği (GAC), Windows dizinindeki bir sistemde yürütülen tüm uygulamalar tarafından paylaşılmak üzere özel olarak tasarlanmış .NET derlemelerini depolayan bir klasördür. Montajlar, makinedeki birçok uygulama arasında, bunları Genel Montaj önbelleğine (GAC) kaydederek paylaşılabilir. GAC, .NET Framework tarafından sürdürülen bir makinenin yerel bir önbellek derlemesidir.
Exe Uygulaması, her şeyden önce, geçerli bir dizinden bir alt dizine başvurur. Ve sonra sistem dizini. VS6.0 sistem dizini ..windows/system32 idi. .NET sistem dizini, aşağıdaki GAC yoluna benzer.
GAC yolu
1) C: \ Windows \ Assembly (NET 2.0 için ~ 3,5)
2) C: \ WINDOWS \ Micorosoft.NET \ montaj (için .NET 4.0)
) Yönetici olarak (GAC içine1) Sürükle bir derleme yüklemek ve Bırak nasıl
- Not istemi: GAC içine bir derleme yüklemek için, Derleme kesin adlandırılmış olması gerekir. Aksi takdirde böyle bir hatayla karşılaşırsınız: Önbellekteki derleme eklenemedi: Güçlü bir ad olmadan bir montaj yüklemeyi deneyin.
- Nasıl (Yönetici olarak) GAC
- Not bir derleme kaldırmaya: hayır genişleme vardır, .dll. Sürüm ve PublickeyToken ihmal edilebilir ve GAC montajında kontrol edilebilir. MSDN veya Wikipedia istediğini için yeterli değil gibi
2) GacUtil'i kullanın.Visual Studio Komutanlığı ile exe
gacutil -i [Path][Assembly Name].dll
gacutil -u [Assembly Name], Version=1.0.0.0, PublickeyToken=7896a3567gh
- 1. GAC
- 2. ASP.NET ve GAC
- 3. Uzak sunucunun GAC
- 4. GAC (Global Assembly Cache) nerede bulunuyor? Faydalı Nedir?
- 5. Referans olmayan GAC versiyonu 2010
- 6. Visual Studio başvurusu x64 GAC
- 7. GAC'nin en son sürümünü nasıl yükleyebilirim GAC
- 8. IOC bağımlılık enjeksiyon dağıtımı (bin? GAC?)
- 9. .NET Core için herhangi bir GAC eşdeğeri var mı?
- 10. Bir HttpModule'ı GAC olmadan birden çok alt uygulama arasında paylaşma
- 11. Bu nedir Alercontroller.recyclelistview nedir
- 12. nedir?
- 13. CLI-Loop nedir? Normal döngüdeki fark nedir?
- 14. Tomcat Bileşeni nedir? Catalina ve Coyote nedir?
- 15. Bu IIS bağlama nedir ve amaçları nedir?
- 16. [alternatives --config mta] ile görüntülenen nedir nedir?
- 17. Parametrelerde 3 nokta nedir?/Değişkenlik (...) parametresi nedir?
- 18. Sanal dizin nedir? Bunun kullanımı nedir?
- 19. sorgusunun anlamı nedir *: lucene'deki değer nedir?
- 20. Gönderen nedir?
- 21. OCaml'de "` "nedir?
- 22. System.Activator.CreateInstance nedir?
- 23. Interop.MSutil.dll nedir
- 24. ADODB.Stream nedir?
- 25. XSLT'de // nedir?
- 26. MediaRecorder.OutputFormat.DEFAULT nedir?
- 27. Javascript'te === nedir?
- 28. IHTMLScriptElement nedir?
- 29. oci_bind_by_name nedir?
- 30. Amacı nedir? * \\?
sen NEDEN bağlantılı cevaplara açar mısınız? –
Bazı kullanıcı uygulamalarında belki de bir hata mesajına tepki veriyor musunuz? – Jeff
@JB King: Bir teknik özellik veya ezoterik bir yazıdan ziyade .NET ile deneyimlenen birinden basit terimlerle duymayı seviyorum. – Nosrama