बस एक आम आदमी के लिए जीएसी का एक संक्षिप्त अवलोकन की तलाश है, कृपया एक लिंक नहीं।.NET में जीएसी क्या है?
उत्तर
दाएं, इसलिए मूल रूप से यह संघर्ष के बारे में चिंता किए बिना डीएलएल को विश्व स्तर पर सुलभ रखने का एक तरीका है। कोई और डीएलएल नरक नहीं। प्रत्येक वास्तुकला और संस्करण को रहने के लिए यह अपनी जगह मिलती है।
यह भी यह एक्सप्लोरर में यह ब्राउज़ करने के लिए अपने तरीके से हो जाता है, इसलिए यदि आप के लिए
सी जाना: \ Windows \ विधानसभा
खिड़कियों में यह सब DLLs को सूचीबद्ध करता है एक्सप्लोरर।
लेकिन अगर आप cmd
ऊपर आग, आप देख सकते हैं कि यह कैसे वास्तव में संरचित है:
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>
यहाँ आप System.Data के संस्करण 2.0.0.0__b77a5c561934e089 देख सकते हैं।
एक DLL 5 भागों से पहचाना जाता है:
- नाम
- संस्करण
- वास्तुकला
- संस्कृति
- सार्वजनिक कुंजी
हालांकि पहले 3 आम तौर पर बड़े हैं लोगों को।
आपको यह उल्लेख करने के लिए एक +1 मिलता है कि "dll hell" से परहेज करते समय वैश्विक स्तर पर संदर्भ होने का यह एक नया तरीका है। (यह एक बेहतर जवाब होगा यदि आप एक छोटे से नरक में जाते हैं, और कैसे जीएसी इसके आसपास हो जाता है ... आपको इसकी मूल रूपरेखा मिल गई है ... लेकिन मैं बस कस लेंगे निर्देशिका संरचना इन्सेट, और डीएल की पहचान कैसे की जाती है और अद्वितीय है) बहुत नकारात्मक लगने का मतलब नहीं है ... मैंने +1 दिया था! – Beska
बस एक लिंक प्रदान न करें:]। आपके उत्तर के बारे में प्रश्न, "GAC_64" निर्देशिका नाम द्वारा निर्दिष्ट "3. आर्किटेक्चर" है? और क्या इस मामले में संस्कृति खाली है - वह मूल्य जो "__" अंडरस्कोर के बीच होगा? –
क्या जीएसी केवल .NET ऐप्स के लिए मौजूद है? –
प्रत्येक कंप्यूटर जहां आम भाषा रनटाइम स्थापित किया गया है एक मशीन चौड़ा कोड कैश वैश्विक विधानसभा कैश कहा जाता है। वैश्विक असेंबली कैश स्टोर्स असेंबली विशेष रूप से को कंप्यूटर पर कई अनुप्रयोगों द्वारा साझा करने के लिए नामित किया गया है।
आपको द्वारा असेंबली को वैश्विक असेंबली कैश में स्थापित करने के लिए केवल तभी साझा करना चाहिए जब आपको आवश्यकता हो। एक सामान्य दिशानिर्देश के रूप में, असेंबली निर्भरता निजी रखें, और एप्लिकेशन निर्देशिका में असेंबली का पता लगाएं जब तक कोई असेंबली साझा नहीं किया जाता है। इसके अलावा, वैश्विक 0 असेंबली कैश में असेंबली स्थापित करना आवश्यक नहीं है ताकि उन्हें COM इंटरऑप या अप्रबंधित कोड तक पहुंचा जा सके।
एमएसडीएन की चीजें आपको आश्चर्यचकित कर सकती हैं ... आप आमतौर पर इसे एक लेख की तरह पढ़ सकते हैं। शीर्ष पर सीधा और सबसे महत्वपूर्ण बिट्स, जटिल विवरण गहराई से नीचे। यह निश्चित रूप से मुझे इससे बेहतर बता सकता है।
ध्यान दें कि विजुअल स्टूडियो संदर्भ विंडो के .NET टैब में जीएसी में सभी डीएलएल प्रदर्शित करता है। (समाधान एक्सप्लोरर में किसी प्रोजेक्ट पर राइट-क्लिक करें और संदर्भ जोड़ें चुनें।) इससे आपको एक और अधिक टिकाऊ विचार मिलना चाहिए।
उन्होंने कोई लिंक नहीं कहा, अपने शब्दों में एक स्पष्टीकरण चाहते थे। – user142350
उन्होंने कहा कि कोई लिंक नहीं ... –
अपनी पोस्ट के मूल संस्करण में (मुझे विश्वास है कि उन्होंने इसे तुरंत संपादित किया है), जो निर्दिष्ट नहीं था! – Noldorin
केंद्रीकृत डीएलएल पुस्तकालय।
GAC = वैश्विक विधानसभा कैश
के इसे तोड़ने के नीचे दो:
- वैश्विक -
- विधानसभा पूरे मशीन पर लागू होता है - नेट अपने कोड-लायब्रेरी (DLL)
- क्या कहता है कैश - तेजी से/सामान्य पहुंच के लिए चीजों को स्टोर करने के लिए एक जगह
तो जीएसी स्टोर करने के लिए एक जगह होनी चाहिए कोड पुस्तकालय ताकि वे मशीन पर चल रहे सभी अनुप्रयोगों के लिए पहुंच योग्य हो।
यह भौतिक फाइलों के साथ-साथ उनके इंटरफ़ेस और स्थान जानकारी के संबंध में, ठीक रजिस्ट्री की तरह है। COM में, फ़ाइलों को केंद्रीकृत मेटाडेटा के साथ हर जगह थे। जीएसी बैंग शूट को केंद्रीकृत करता है।
जीएसी (ग्लोबल असेंबली कैश) वह है जहां सभी साझा .NET असेंबली रहते हैं।
ग्लोबल असेंबली कैश (जीएसी) .NET असेंबली को स्टोर करने के लिए विंडोज निर्देशिका में एक फ़ोल्डर है जिसे विशेष रूप से सिस्टम पर निष्पादित सभी अनुप्रयोगों द्वारा साझा करने के लिए नामित किया गया है। असेंबली को वैश्विक असेंबली कैश (जीएसी) में पंजीकृत करके मशीन पर कई अनुप्रयोगों के बीच साझा किया जा सकता है। जीएसी एक मशीन चौड़ा है जो .NET Framework द्वारा बनाए गए असेंबली के स्थानीय कैश है।
एक्सई एप्लिकेशन, सबसे पहले, वर्तमान निर्देशिका से उपनिर्देशिका में संदर्भ। और फिर, सिस्टम निर्देशिका। वीएस 6.0 सिस्टम निर्देशिका .. विन्डोज़/system32 था। .NET सिस्टम निर्देशिका नीचे दिए गए जीएसी पथ की तरह है।
GAC पथ
1) C: \ Windows \ सभा (.NET 2.0 के लिए ~ 3,5)
2) सी: \ WINDOWS \ Micorosoft.NET \ विधानसभा (के लिए .NET 4.0)
(
1) खींचें GAC में एक विधानसभा स्थापित करने के लिए प्रशासक के रूप में) और ड्रॉप
2) GacUtil का उपयोग करें।दृश्य स्टूडियो कमान के साथ exe के लिए प्रेरित करें
gacutil -i [Path][Assembly Name].dll
- नोट: GAC में एक विधानसभा स्थापित करने के लिए विधानसभा का मज़बूत नाम किया जाना चाहिए। अन्यथा आपको इस तरह की त्रुटि मिलती है: कैश में असेंबली जोड़ने में विफलता: एक मजबूत नाम के बिना असेंबली स्थापित करने का प्रयास करें।
कैसे GAC से एक विधानसभा की स्थापना रद्द करने (प्रशासक के रूप में)
gacutil -u [Assembly Name], Version=1.0.0.0, PublickeyToken=7896a3567gh
- नोट: कोई विस्तार है, .dll। संस्करण और PublickeyToken छोड़ा जा सकता है और जीएसी असेंबली में चेक किया जा सकता है।
- 1. .net 4 आंशिक ट्रस्ट जीएसी
- 2. जीएसी
- 3. जीएसी
- 4. जीएसी
- 5. .NET 4.0 में एक नया जीएसी है, क्यों?
- 6. जीएसी
- 7. मैं जीएसी
- 8. जीएसी
- 9. मैं इनोसेटअप में जीएसी में .NET असेंबली कैसे जोड़ूं?
- 10. जीएसी में इंटरऑप डीएल रखो?
- 11. जीएसी बनाम जेआईटी
- 12. जीएसी पथ
- 13. यदि कोई असेंबली जीएसी में है, तो क्या सभी असेंबली जो कॉल को जीएसी में भी करनी होंगी?
- 14. जीएसी और असेंबली संस्करण
- 15. .NET में मेटाडेटा क्या है?
- 16. क्या जीएसी प्रबंधन के लिए कोई उपकरण है?
- 17. एमईएफ लोडिंग डीएलएल जिन्हें जीएसी
- 18. जीएसी इंस्टॉलेशन का पुनरीक्षण
- 19. जीएसी और इंस्टाल पथ
- 20. जीएसी के लिए, या जीएसी के लिए नहीं?
- 21. जीएसी प्रोग्रामेटिक रूप से
- 22. ग्लोबल असेंबली कैश (जीएसी)
- 23. जीएसी डीएलएस अपडेट करना
- 24. क्या एक (.net) COM + असेंबली को GAC में स्थापित करने की आवश्यकता है?
- 25. संदर्भ संदर्भ संवाद में गायब जीएसी असेंबली
- 26. जीएसी में स्थापित करें और रजिस्ट्री में पंजीकरण करें
- 27. जीएसी के बजाय स्थानीय फ़ोल्डर्स में असेंबली देखने के लिए .NET कैसे प्राप्त करें?
- 28. क्या vbscript से .NET असेंबली (डीएलएल) निष्पादित करना संभव है?
- 29. .NET Framework क्या है?
- 30. जीएसी को असेंबली पंजीकृत/स्थापित करने का 'सही' तरीका क्या है?
आप क्यों जुड़े हुए जवाब पर विस्तृत कर सके तरह MSDN या विकिपीडिया आप क्या चाहते हैं के लिए पर्याप्त नहीं हैं? –
क्या आप शायद कुछ उपयोगकर्ता एप्लिकेशन में एक त्रुटि संदेश पर प्रतिक्रिया कर रहे हैं? – Jeff
@ जेबी किंग: मैं इसे तकनीकी विनिर्देश या एक गूढ़ लेख के बजाय .NET के साथ अनुभवी किसी व्यक्ति से सादे शब्दों में सुनना पसंद करता हूं। – Nosrama