2010-08-27 6 views
6

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

मैंने स्टार्टअप प्रोजेक्ट के रूप में डीएलएल प्रोजेक्ट को सेट करने और एप्लिकेशन के एक्सई को निष्पादित करने और बाहरी दृश्य स्टूडियो से एप्लिकेशन शुरू करने और फिर प्रक्रिया को जोड़ने के लिए आदेश देने की कोशिश की, सभी को कोई फायदा नहीं हुआ।

प्रश्न यह है कि लोड मॉड्यूल की सूची में डीएल क्यों दिखाई नहीं दे रहा है, हालांकि इसे लोड किया जाना चाहिए था? मैं अपने द्वारा किए गए किसी भी अन्य बदलाव के बारे में नहीं सोच सकता, जो इसका कारण बन सकता है, क्या मुझे कुछ याद आ रहा है? (शायद कुछ वास्तव में स्पष्ट है?)

किसी भी मदद की सराहना की!

उत्तर

1

मुझे एक कंप्यूटर से दूसरे कंप्यूटर पर एक प्रोजेक्ट स्थानांतरित करने के बाद समान समस्या का सामना करना पड़ा। मैं बस को समझाऊंगा जो मैंने और की खोज की है, मैंने इसे कैसे तय किया है, और आप यह निर्धारित कर सकते हैं कि यह आपकी समस्या और समाधान के अनुरूप है या नहीं।

  1. वर्क कंप्यूटर जिस पर मैंने एक प्रोग्राम लिखा था जिसमें एक .dll फ़ाइल थी जो मेरा प्रोग्राम संदर्भित कर रहा था। एप्लिकेशन को मेरे होम कंप्यूटर पर ले जाने के बाद, एप्लिकेशन अब .dll फ़ाइल का पता नहीं लगा सकता था जिसे पहले संदर्भित किया गया था क्योंकि फ़ाइल अब नहीं थी।

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

मैं निम्नलिखित पर एक नज़र ले जाएगा:

क) के तहत समाधान एक्सप्लोरर, संदर्भ में जाने फ़ोल्डर और सही लापता संदर्भ नोड क्लिक करें और चुनें गुण। गुण बॉक्स में, संदर्भित संसाधन के पथ का निरीक्षण करें। क्या संसाधन अभी भी इस पथ पर स्थित है?

बी) संसाधन की एक प्रति के लिए डीबग फ़ोल्डर जांचें। यदि संसाधन है, तो कॉपी करें और इसे अपने डेस्कटॉप पर सहेजें। यदि यह नहीं है, मूल स्रोत से फ़ाइल प्राप्त करें।

ग) समाधान एक्सप्लोरर के तहत, सही 'गुण' और 'खुला' पर क्लिक करें। दिखाई देने वाले मेनू से 'संसाधन' बाईं ओर और नई विंडो के शीर्ष पर आपको दिखाई देने वाले आपको 'संसाधन' को एक छोटे ड्रॉप डाउन तीर के साथ देखना चाहिए। तीर पर क्लिक करें और 'मौजूदा फ़ाइल जोड़ें' और फिर फ़ाइल पर ब्राउज़ करें। यदि आप इसे नहीं देखते हैं तो आपको 'ओपन' और 'रद्द करें' बटन के ऊपर छोटी ड्रॉप से ​​ब्राउज की गई फ़ाइल को बदलना पड़ सकता है। फ़ाइल स्थित होने के बाद इसे 'संसाधन' नामक समाधान एक्सप्लोरर में एक नया फ़ोल्डर बनाना चाहिए। अब फ़ाइल आपके आवेदन का एक स्थायी हिस्सा है और न केवल इसका संदर्भ है। यदि dll या लोड नहीं है

6
  1. उपयोग process explorer जाँच करने के लिए।

  2. जब आप प्रक्रिया को संलग्न करते हैं तो सुनिश्चित करें कि आप 'मूल' और 'प्रबंधित' कोड प्रकार (कोड प्रकार चयन विकल्प में) दोनों सक्षम कर रहे हैं।

भी इस सवाल देखें: Visual Studio is not loading modules when attaching to process

1

मैं विजुअल स्टूडियो 2008 मैं एक सभा में एक नई पद्धति का परीक्षण करने के लिए एक सरल परीक्षक उपयोग कर रहा था के साथ एक ही मुद्दा आज था। इसलिए मेरी असेंबली में एक संदर्भ जोड़ा गया मैंने असेंबली लोड करने के लिए कोड लिखा और नई विधि, बिल्ड, सब ठीक है। लेकिन निष्पादन के दौरान डीबगर एक अपवाद फेंक देगा कि नई नई विधि मौजूद नहीं थी, और मॉड्यूल विंडो खाली थी।

जीएसी में संशोधित असेंबली को बदलता है, और मेरी बिल्ड निर्देशिका में नए के बजाय उपयोग कर रहा था।

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