2009-01-14 7 views
45

यह असेंबली जीएसी में है: Microsoft.SqlServer.Management.RegisteredServers.dllमैं विजुअल स्टूडियो से जीएसी में एक डीएलएल का संदर्भ कैसे दे सकता हूं?

मैं विजुअल स्टूडियो में इस असेंबली का संदर्भ कैसे जोड़ सकता हूं?

मैं सी में फ़ाइल देख सकते हैं: \ windows \ विधानसभा \

उत्तर

5

वी.एस. में, सही अपनी परियोजना पर क्लिक करें, "संदर्भ जोड़ें ..." का चयन करें, और आप सभी नामस्थान कि आपके GAC में मौजूद देखेंगे । Microsoft.SqlServer.Management.RegisteredServers चुनें और ठीक क्लिक करें, और तुम जाना अच्छा होना चाहिए

संपादित करें:

जिस तरह से आप समय की इस सबसे क्या करना चाहते है। हालांकि, कुछ घूमने के बाद मुझे एमएस कनेक्ट पर this issue मिला। एमएस का कहना है कि यह एक ज्ञात तैनाती मुद्दा है, और उनके पास कोई काम नहीं है। लड़का कहता है कि अगर वह जीएसी फ़ोल्डर से डीएलएल की प्रतिलिपि बनाता है और उसे अपने बिन में छोड़ देता है, तो यह काम करता है।

+0

यह किसी कारण से नहीं है! –

+0

जिस पृष्ठ पर आपने उन्हें लिंक किया है (17-नवंबर -2010 से) का उल्लेख है कि समस्या ठीक हो गई है। –

2

मान लीजिए कि आप को "संदर्भ जोड़ें ..." की कोशिश की गई है जैसा ऊपर बताया गया है और सफल नहीं हुआ है, तो आप here देख सकते हैं। वे कहते हैं कि यदि आप कुछ आवश्यक शर्तें को पूरा करने के लिए है: - नेट 3.5 एसपी 1 - Windows इंस्टालर 4.5

संपादित करें: इस post के अनुसार यह एक ज्ञात समस्या है।

और this समाधान आप :)

11

GAC में assmblies का पंजीयन तो संदर्भ जोड़ें संवाद में विधानसभा के लिए एक संदर्भ जगह नहीं है के लिए देख रहे हो सकता है। आपको अभी भी अपनी परियोजना के लिए पथ द्वारा असेंबली का संदर्भ देने की आवश्यकता है, मुख्य अंतर यह है कि आपको प्रतिलिपि स्थानीय विकल्प का उपयोग करने की आवश्यकता नहीं है, तो आपका ऐप इसे रनटाइम पर पायेगा।

इस विशेष मामले में, आपको केवल पथ (ब्राउज़) द्वारा अपनी असेंबली का संदर्भ देना होगा या यदि आप वास्तव में इसे संदर्भ संदर्भ संवाद में रखना चाहते हैं तो एक रजिस्ट्री सेटिंग है जहां आप अतिरिक्त पथ जोड़ सकते हैं।

नोट, अगर आप किसी ऐसे व्यक्ति को अपना ऐप भेजते हैं जिस पर यह असेंबली इंस्टॉल नहीं है तो आपको इसे शिप करने की आवश्यकता होगी, और इस मामले में आपको वास्तव में SharedManagementObjects.msi पुनर्वितरण योग्य उपयोग करने की आवश्यकता है।

14

मैंने एक उपकरण बनाया है जो पूरी तरह से नि: शुल्क है, जो आपको अपना लक्ष्य प्राप्त करने में मदद करेगा। Muse VSReferences आपको GAC संदर्भ मेनू आइटम से परियोजना के लिए वैश्विक असेंबली कैश संदर्भ जोड़ने की अनुमति देगा।

आशा इस Muse VSExtensions

+0

क्या यह विजुअल स्टूडियो एक्सप्रेस संस्करण के साथ काम करने का कोई तरीका है? –

+2

केवल वीएस 2010 के लिए काम करता है हालांकि ... – Peter

+0

ग्रेट टूल !! :) – Nayan

54

में मदद करता है के रूप में अन्य लोगों ने कहा कि समय के सबसे अधिक आपको लगता है कि क्योंकि यह अपनी परियोजना के लिए विधानसभा की प्रतिलिपि नहीं करता है और यह अपनी परियोजना के साथ तैनात नहीं होगा क्या करना चाहते हैं नहीं होंगे। हालांकि, अगर तुम मुझे पसंद कर रहे हैं, और एक संदर्भ है कि सभी लक्ष्य मशीनों उनके GAC में है जोड़ने की कोशिश कर लेकिन यह एक .नेट फ्रेमवर्क विधानसभा नहीं है:

  1. ओपन विंडोज़ संवाद चलाएं (विंडोज कुंजी + r)
  2. टाइप सी: \ विंडोज \ असेंबली \ gac_msil। यह किसी प्रकार का अजीब हैक है जो आपको अपना जीएसी ब्राउज़ करने देता है। आप केवल रन संवाद के माध्यम से इसे प्राप्त कर सकते हैं। उम्मीद है कि इस जानकारी को फैलाने से अंततः माइक्रोसॉफ्ट को इसे पैच करने और इसे अवरुद्ध करने का कारण नहीं बनता है। (बहुत पागल?: पी)
  3. अपनी असेंबली ढूंढें और पता बार से अपना रास्ता कॉपी करें।
  4. विजुअल स्टूडियो में संदर्भ जोड़ें संवाद खोलें और ब्राउज़ टैब चुनें।
  5. अपनी जीएसी असेंबली के रास्ते में पेस्ट करें।

मुझे नहीं पता कि कोई आसान तरीका है, लेकिन मुझे यह नहीं मिला है। मैं अक्सर अपने जीएसी असेंबली के साथ .pdb फ़ाइलों को रखने के लिए चरण 1-3 का उपयोग करता हूं ताकि यह सुनिश्चित किया जा सके कि जब वे बाद में रिमोट डीबगर का उपयोग करने की आवश्यकता हो तो वे खो नहीं जाएंगे।

+0

मैं हाल ही में एक चैनल 9 वीडियो देख रहा था या कुछ समान और संक्षेप में देखा कि प्रशिक्षक की संदर्भ संदर्भ विंडो में एक जीएसी विकल्प शामिल था (बिल्कुल याद नहीं है)। मुझे नहीं पता कि वह घर का बना ऐड-इन था या यदि वहां कोई बाहर उपलब्ध है। क्या किसी ने इसे देखा है? – xr280xr

+1

@Muse VS * उत्तर पर एक नज़र डालें। यह अच्छी तरह से काम करता है। – pauloya

+1

"जीएसी_एमएसआईएल को आंतरिक या बाहरी कमांड के रूप में पहचाना नहीं गया है" Win7 – Rakesh

6

वीएस -2010 में, एड रेरेनस विंडो से आप 'ब्राउज़ करें' पर क्लिक कर सकते हैं और सी: \ विंडोज \ असेंबली पर नेविगेट कर सकते हैं और जो असेंबली चाहते हैं उन्हें संदर्भ जोड़ सकते हैं। कृपया ध्यान दें कि फ़ाइलों को जीएसी, जीएसी_32, जीएसी_64, जीएसी_एमएसआईएल आदि जैसे विभिन्न फ़ोल्डर्स के तहत समूहीकृत किया जा सकता है

4

मेरे लिए काम करने का एकमात्र तरीका, आपके डेस्कटॉप या कुछ में डीएलएल की प्रतिलिपि बनाकर, इसके संदर्भ में जोड़ें, फिर अपने डेस्कटॉप से ​​डीएलएल हटाएं। विजुअल स्टूडियो खुद को ताज़ा कर देगा, और आखिर में जीएसी से डीएलएल को संदर्भित करेगा।

1

उत्तर देने में बहुत देर हो सकती है, लेकिन मुझे ऐसा करने का एक आसान तरीका मिला (बिना हैक के)।

  1. अपने dll GACमें डाल (अंदर 3.5 खींचें ड्रॉप के लिए "C: \ Windows \ विधानसभा \")
  2. गोटो परियोजनाएं -> गुण
  3. क्लिक करें संदर्भ पथ (के लिए 3.5 यह "C: \ Windows \ विधानसभा \" है)
  4. और बिल्ड

उम्मीद है कि यह

संबंधित मुद्दे

 संबंधित मुद्दे