2013-04-12 13 views
9

मैं निम्न त्रुटि हो रही है, रुक-रुक कर:अस्पष्ट संदर्भ त्रुटि

लोड नहीं कर सका फ़ाइल या विधानसभा 'com.mycompany.myapp' या अपनी निर्भरता में से एक। स्थित असेंबली का मेनिफेस्ट असेंबली संदर्भ से मेल नहीं खाता है।

मैं अजाक्स उपयोगकर्ता नियंत्रण है कि मैं बनाया गया है और एक DLL संकलित का एक पुस्तकालय है। इस परियोजना में प्रोजेक्ट ए (com.mycompany.myapp) का संदर्भ है। मेरे मुख्य वेब एप्लिकेशन में इस डीएलएल का संदर्भ है और परियोजना ए के संदर्भ में भी एक अवसर है, यह त्रुटि तब होगी जब मैं अपने वेब एप्लिकेशन को पुनर्निर्माण करने का प्रयास करता हूं। ऐसा लगता है कि प्रोजेक्ट ए के संदर्भ डीएलएल और वेब अनुप्रयोग के बीच सिंक से बाहर हो रहे हैं।

यह केवल डीएलएल का पुनर्निर्माण करके, वेब अनुप्रयोग से डीएलएल के संदर्भ को हटाने, संदर्भ को दोबारा जोड़ने, और फिर वेब अनुप्रयोग का पुनर्निर्माण करके तय किया जा सकता है। क्या कोई यह समझा सकता है कि यह क्यों हो रहा है और इस त्रुटि को फसल से कैसे रोकें?

मैं ऐसे समाधान की तलाश कर रहा हूं जो इस समस्या को हल करने की अनुमति दे ताकि मैं इस डीएलएल को चिंता के बिना वितरित कर सकूं कि इसे पुनर्निर्मित और तैनात करने की आवश्यकता होगी।

+0

असेंबली को फिर से लोड करने का प्रयास करें, इसे संदर्भों से हटा दें और इसे दोबारा जोड़ें। इसे हल करना चाहिए। – IWIH

उत्तर

1

आप एक ही समाधान के अंदर अपने सभी परियोजनाओं है, तो आप यह सुनिश्चित करें कि वे सभी परियोजना संदर्भ कर रहे हैं और संदर्भ फाइल नहीं बनाने की जरूरत है। आप प्रोजेक्ट पर राइट क्लिक करके और गुण => संदर्भों पर जाकर इसे देख सकते हैं।

आपकी संदर्भ सूची में आपको "कॉपी स्थानीय" नामक एक कॉलम दिखाई देगा। यदि यह गलत पर सेट करने के लिए सेट है, तो इसका मतलब है कि आप इसे प्रोजेक्ट के बजाय फ़ाइल द्वारा संदर्भित कर रहे हैं (जो इसे बनाने के बाद DLL को अपडेट नहीं करता है)। इसे हल करने के लिए, संदर्भ को हटाएं और इसे फिर से जोड़ें (सुनिश्चित करें कि आप इसे अपने समाधान से संदर्भित करते हैं, न कि आपके हार्ड ड्राइव पर डीएलएल का संदर्भ देकर)।

यदि आपके पास एक ही समाधान के अंदर सभी परियोजनाएं नहीं हैं, तो यह सामान्य व्यवहार है। मान लें कि आपकी अजाक्स नियंत्रण लाइब्रेरी समाधान के बाहर है।

शुरू करने की स्थिति कुछ इस तरह होगा:

  • अजाक्स का संदर्भ एक (संस्करण 1)
  • प्रोजेक्ट ए का संदर्भ (संस्करण 1)
  • परियोजना का संदर्भ अजाक्स (संस्करण 1)

अपना समाधान बनाने के बाद (इसके अंदर अजाक्स प्रोजेक्ट के बिना) आपके पास निम्न स्थिति होगी:

  • अजाक्स का संदर्भ एक (संस्करण 1)
  • प्रोजेक्ट ए का संदर्भ (संस्करण 2)
  • परियोजना का संदर्भ अजाक्स (संस्करण 1)

आप देख सकते हैं, संकलक अचानक एक के लिए एक संदर्भ की जरूरत है संस्करण 1 और संस्करण 2, इसलिए यह असंभव है और यह आपको एक त्रुटि देता है। यह यह भी समझाएगा कि जब आप पुनर्निर्माण करते हैं और DLL को हटाते हैं और इसे फिर से जोड़ते हैं तो यह क्यों काम करता है।

यहां समाधान अजाक्स-प्रोजेक्ट को आपके समाधान में जोड़ना होगा और हर बार इसे पुनर्निर्माण करना होगा।

1

यह आपकी मदद कर सकता है .. मेरे पास पहले भी एक ही समस्या है, मैंने जो किया था, मैंने बिन फ़ोल्डर में फ़ाइलों को हटा दिया, फिर एप्लिकेशन को पुनर्निर्माण किया, फिर मुख्य परियोजना में अन्य प्रोजेक्ट को जोड़ा और फिर दोनों को पुनर्निर्माण किया।

"Could not load file or assembly" error but I don't know which project is referencing this assembly with old number

+0

प्रतिक्रिया के लिए धन्यवाद लेकिन यह काम नहीं किया – jason

1

(दोनों परियोजनाओं के लिए) परियोजना एक के लिए संदर्भ की जाँच करें और सुनिश्चित करें कि वे एक ही विधानसभा और/या परियोजना को संदर्भित कर रहे हैं। (सबसे आम कारण) The located assembly's manifest definition with name xxx.dll does not match the assembly reference

1

जांचें कि आपकी असेंबली "com.mycompany.myapp" में असेंबली वर्जन विशेषता नहीं है, या इसके संस्करण में तारांकन नहीं है जो संस्करणों की ऑटो पीढ़ी का कारण बनता है।

बस एक विचार।

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