2011-09-20 13 views
10

क्या आप मुझे समस्या निवारण के लिए एक तरीका दिखा सकते हैं System.ypeLoadException?मैं समस्या निवारण कैसे कर सकता हूं: System.TypeLoadException?

मुझे अपने समाधान में एक मौजूदा प्रोजेक्ट के लिए यह अपवाद है जो मैं एक ही समाधान में यूनिट टेस्ट प्रोजेक्ट से संदर्भित करता हूं।

जब मैं अपना यूनिट परीक्षण चलाता हूं तो यह निष्कासन फेंक दिया जाता है। वे इस अपवाद की वजह से असफल:

विवरण:

टेस्ट विधि MyErrorHandler.Test.MyTest.Parse_RecievesValidMessage_ReturnsArray अपवाद दिए: System.TypeLoadException: विधानसभा से लोड नहीं कर सका प्रकार 'MyTestNameSpace' MyTestAssemblyName। टेस्ट, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = Somenumber।

मुझे क्या जांचना चाहिए या मुझे जांच कहां शुरू करनी चाहिए?

+1

अपवाद को किस प्रकार ट्रिगर करता है? – Gabe

+0

पूर्ण अपवाद क्या है? –

+0

कृपया मेरे जोड़ देखें। – pencilCake

उत्तर

2

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

संपादित करें: उस उपग्रह असेंबली को भी देखें (टाइप लोडर लोड होने में असेंबली द्वारा संदर्भित) पहुंच योग्य हैं।

0

भीतरी अपवाद में एक नजर डालें। यह तब होता है जब स्थिर निर्माता ने अपवाद फेंक दिया।

2

डीबग -> टूल्स -> अपवादों से आप 'ब्रेक अप अपवाद फेंकने' पर स्विच करने का प्रयास कर सकते हैं और थ्रो कॉलम में सभी चेक बॉक्स पर क्लिक कर सकते हैं। जब आप अपना परीक्षण फिर से चलाते हैं तो आपको यह देखने में सक्षम होना चाहिए कि यह अपवाद कहां फेंक रहा है।

0

खैर ... यह पूरी तरह से मेरा बुरा था।

मैंने एक गलत असेंबली नाम दिया जिसके परिणामस्वरूप बिन फ़ोल्डर में एक अनुपलब्ध DLL था।

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

11

एक ऐसी स्थिति जहां यह अपवाद फेंक दिया गया है यदि निष्पादन असेंबली के पास दिए गए प्रकार के साथ असेंबली के समान नाम है। उदाहरण के लिए, यदि आप MyApp.exe चला रहे हैं और प्रकार MyApp.dll में है, तो सीएलआर मान लेगा कि यह प्रकार MyApp.exe में होना चाहिए। एक समाधान उन विधानसभाओं में से एक का नाम बदलना होगा।

+4

+1 धन्यवाद, यह बहुत सी सिर खरोंच के बाद मेरी पूंछ को बचाया! –

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