यह काम नहीं करता है। जब आप प्रोजेक्ट + संदर्भ जोड़ें का उपयोग करते हैं तो आप हमेशा संदर्भ असेंबली जोड़ते हैं। यह कभी भी जीएसी से एक असेंबली नहीं है। जीएसी एक रनटाइम कार्यान्वयन विस्तार है, इसका उपयोग कभी भी आपके कार्यक्रम निष्पादित होने पर असेंबली की आपूर्ति के लिए किया जाता है, कभी भी जब इसे बनाया नहीं जाता है।
यह बहुत महत्वपूर्ण है कि यह इस तरह से काम करता है, आपकी मशीन पर जीएसी की सामग्री आपके उपयोगकर्ता की मशीन पर जीएसी की सामग्री से मेल नहीं खाती है। उपयोगकर्ता की जीएसी सामग्री में आपकी संदर्भ असेंबली के मैपिंग को सुनिश्चित करने के लिए डीएलएल नर्क प्रतिवादों के बहुत सारे स्थान हैं, जब उपयोगकर्ता की मशीन को आपके प्रोग्राम को निष्पादित करने के लिए सही तरीके से कॉन्फ़िगर नहीं किया गया है तो अच्छे डायग्नोस्टिक्स का ख्याल रखा जाता है।
यह भी कारण है कि जब आप एक्सप्लोरर के साथ c: \ windows \ assembly पर नेविगेट करते हैं तो आप सीधे जीएसी फ़ोल्डरों को नहीं देख सकते हैं। एक शेल एक्सटेंशन हैंडलर आपको एक संदर्भ असेंबली के रूप में एक GAC-ed असेंबली जोड़ने जैसी गलती करने से रोकने के लिए विवरण छुपाता है। यह एक्सटेंशन एक्सटेंशन हैंडलर .NET 4 असेंबली के लिए स्थापित नहीं है, आप c: \ windows \ microsoft.net \ assembly पर देख सकते हैं और जीएसी की संरचना देख सकते हैं। मान लें कि अब से संदर्भ जोड़ने के लिए ठीक है, .NET 4 में संदर्भ असेंबली और भी महत्वपूर्ण हैं, वे रनटाइम असेंबली से बिल्कुल अलग हैं।
इसलिए सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework \ v3.5 में संग्रहीत संदर्भ असेंबली को पूरी तरह सामान्य है, यह System.Core.dll जैसे .NET 3.5 विशिष्ट संदर्भ असेंबली के लिए होम निर्देशिका है। .NET 4 प्रोजेक्ट्स के लिए संदर्भ असेंबली c: \ प्रोग्राम फ़ाइलों \ संदर्भ असेंबली में संग्रहीत हैं, उन्हें संदर्भ C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 होना चाहिए। this answer देखें कि सही संदर्भ असेंबली का उपयोग न करने के कारण किस तरह का अपरिहार्य दुःख हो सकता है।
स्रोत
2013-02-15 12:28:25
अच्छा जवाब, इसे सही उत्तर के रूप में स्वीकार किया जाना चाहिए :) –
यह मेरे लिए काम करता है (मेरी पोस्ट देखें) [लिंक (http://stackoverflow.com/questions/444655/how-can-i-reference- एक-dll-इन-द-गाक-से-विजुअल स्टूडियो) –