2010-07-14 11 views
5

मैंने अपने सॉफ्टवेयर को बनाम 2008/.NET 3.5 से बनाम 2010/.NET 4.0 में अपग्रेड किया। सभी तृतीय पक्ष पुस्तकालय (सबसे प्रासंगिक: 2.1.2 या 3.0.0, nunit 2.5.2 nhibernate) बनाम अभी भी बनाम 2008 का उपयोग कर संकलित हैं। जब मैं अपने सॉफ़्टवेयर के डीबग बिल्ड के लिए यूनिट परीक्षण चलाता हूं, तो सब कुछ ठीक काम करता है। रिलीज बिल्ड पर, 228 परीक्षणों में से 33 पर अपनिट रिपोर्ट अपवाद: System.InvalidProgramException : Common Language Runtime detected an invalid program. यह हमेशा नॉनिट-कंसोल और रिशेर्पर 5.0 टेस्ट रनर दोनों के लिए एक ही परीक्षण पर होता है। जब मैं उन्हें रिशेर्पर "डीबग यूनिट-टेस्ट" कमांड का उपयोग करके चलाता हूं, तो सभी परीक्षण पास होते हैं। इससे कोई फर्क नहीं पड़ता कि मैं व्यक्तिगत रूप से परीक्षण चलाता हूं या बैच करता हूं। अपवाद हमेशा निबर्ननेट क्वेरी कॉल के पास होता है, लेकिन मैं निश्चित रूप से कह नहीं सकता क्योंकि रिलीज बिल्ड स्टैक ट्रेस कुछ हद तक स्पैस है। यह निबर्ननेट बाइटकोड जनरेटर पर निर्भर नहीं है, महल और लिनफू के लिए एक ही अपवाद दिखाई देता है। क्या किसी को यह पता है कि इसे कैसे डिबग करना है?नुनिट: "आम भाषा रनटाइम एक अवैध प्रोग्राम का पता चला।"

संपादित करें: Spring.ET को हटाने से इस मुद्दे पर कोई प्रभाव नहीं पड़ा।

संपादित करें: जब मैं पूर्ण बजाय pdb को रिलीज config डिबग आउटपुट स्विच केवल और अनुकूलन कोड चेकबॉक्स को निष्क्रिय, अपवाद गायब हो जाता है। दोनों सेटिंग्स की आवश्यकता है, अगर मैं उनमें से केवल एक को बदलता हूं तो बग बनी हुई है। हालांकि, परीक्षणों का एक अलग सेट विफल रहता है अगर मैं केवल एक बदलता हूं। सभी कक्षा पुस्तकालयों को के लिए संकलित किया गया है कोई भी CPU

+0

क्या आप जांच सकते हैं कि प्रोजेक्ट की रिलीज और डीबग कॉन्फ़िगरेशन भिन्न हैं या नहीं? मैंने कुछ मामलों को देखा है, जहां कोई सिर्फ कॉन्फ़िगरेशन डीबग करने के लिए एक्स जोड़ता है ... रिलीज कॉन्फ़िगरेशन स्टेल छोड़कर .. – Gishu

+0

@ गिशू: मैं डीबग आउटपुट में अंतर का पता लगाने और कोड सेटिंग्स को अनुकूलित करने में सक्षम था - कोई अन्य सेटिंग्स प्रतीत नहीं होती इस मुद्दे को प्रभावित करें। –

+0

हम्म .. यहां कोई निश्चित दिशा नहीं है। कुछ सरसरी खोजों से, ऐसा लगता है कि यह तृतीय पक्ष डीएल कॉल से संबंधित है। http://bit.ly/g3iwnK स्टैकट्रैक प्राप्त करने और सही एमएस फोरम पर पोस्ट करने का प्रयास करें- एक आला क्षेत्र (बिल्कुल एसओ का फोर्टे नहीं) – Gishu

उत्तर

0

यह शायद एक बेवकूफ सवाल है: क्या आप सुनिश्चित हैं कि सभी असेंबली एक ही वास्तुकला (x86/x64) में संकलित हैं? मैं थोड़ी देर पहले इस में भाग गया।

+0

यह काम करना चाहिए जब सभी असेंबली * किसी भी CPU * के लिए संकलित हों, या करें मुझे स्पष्ट रूप से लक्ष्य निर्दिष्ट करना है? –

+0

किसी भी सीपीयू को काम करना चाहिए। जेआईटी कंपाइलर निष्पादन पर उचित वास्तुकला में चीजों को संकलित करेगा। – Amy

0

मेरे पास कुछ ऐसा था जब मैंने "नेट फ्रेमवर्क 4.0 क्लाइंट प्रोफाइल" चुना था। लक्ष्य ढांचे के लिए "नेट फ्रेमवर्क 4.0" बदलने की कोशिश

+0

यह पहले से ही पूर्ण 4.0 प्रोफाइल है, सीपी नहीं। –

0

मेरा आवेदन भी रिलीज विन्यास पर है कि एक ही अपवाद के साथ डिबग लेकिन दुर्घटना में चलाए जा सकें। कारण यह था कि मेरे पास सशर्त "DEBUG" विशेषता के साथ एक विधि थी, जिसने एक मूल्य वापस कर दिया ...

बेशक, रिलीज कॉन्फ़िगरेशन में, सशर्त "DEBUG" विशेषता वाले सभी विधियों को बिना किसी वापसी के स्टब्स में बदला जाता है मूल्य। इसलिए आईडीई सोच सकता है कि आपके प्रकार कोड विश्लेषण द्वारा ठीक गोंग हैं और कोई चेतावनी नहीं देते हैं, लेकिन संकलित एप्लिकेशन में वापसी प्रकार मिस-मैचों हैं!

बस सोचा कि मैं इसे इस मुद्दे के साथ दीवार के खिलाफ अपने सिर पर टक्कर मारने वालों के लिए जोड़ दूंगा।

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