2012-03-26 12 views
17

शुभ दिन हर किसी के कारण होता है। मुझे पूरे दिन काम पर एक ही समस्या है और नीचे जाने के लिए कोई नया रास्ता खोजने के लिए संघर्ष कर रहा हूं।सिस्टम.बैड इमेजफॉर्मैट एक्सेप्शन एनयूनीट प्रोजेक्ट

जब मेरा समाधान सर्वर पर बनाता है तो मुझे निम्न त्रुटि मिल रही है। मुझे समाधान में सभी परीक्षणों को चलाने/डिबग करने में कोई समस्या नहीं है और यह ठीक बनाता है। सर्वर और मेरे पीसी दोनों x64 हैं। मैंने बहुत सी सलाह दी है जो मुझे कोई फायदा नहीं हुआ है।

मैंने सभी विन्यासों के तहत अपने समाधान में सभी परियोजनाओं के लिए x86 पर प्लेटफार्म लक्ष्य सेट किया है।

मुझे पता है कि एक नुनिट-कंसोल-x86.exe है जो सभी अंतर कर सकता है लेकिन मुझे यकीन नहीं है कि कोड में इसे कहां निर्दिष्ट करना है।

कृपया महसूस करें कि मैंने इंटरनेट पर निशान डाला है, इसलिए क्षमा करें अगर मुझे कुछ याद आया है।

System.BadImageFormatException: फ़ाइल या विधानसभा लोड नहीं कर सका
'Spin.TradingServices.DataAcquisition.Test.NUnit, संस्करण = 1.0.12103.2060, संस्कृति = तटस्थ, PublicKeyToken = अशक्त' या अपनी निर्भरता में से एक । एक प्रोग्राम को गलत प्रारूप के साथ लोड करने का प्रयास किया गया था।
फ़ाइल का नाम: 'Spin.TradingServices.DataAcquisition.Test.NUnit, संस्करण = 1.0.12103.2060, संस्कृति = तटस्थ, PublicKeyToken = अशक्त'

सर्वर स्टैक ट्रेस: ​​ System.Reflection.RuntimeAssembly._nLoad पर (AssemblyName फ़ाइल नाम, स्ट्रिंग codebase, साक्ष्य assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark & stackMark, बूलियन throwOnFileNotFound, बूलियन forIntrospection, बूलियन suppressSecurityChecks) System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName assemblyRef, साक्ष्य assemblySecurity, StackCrawlMark पर & stackMark, बूलियन forIntrospection, बूलियन suppressSecurityChecks) System.Reflection.Assembly.Load (AssemblyName assemblyRef) पर NUnit.Core.Builders.TestAssemblyBuilder.Load (स्ट्रिंग पथ) पर NUnit.Core.Builders.TestAssemblyBuilder.Build पर (NUnit.Core.TestSuiteBuilder.Build पर NUnit.Core.TestSuiteBuilder.BuildSingleAssembly (TestPackage पैकेज) में स्ट्रिंग AssemblyName, बूलियन autoSuites) NUnit.Core.Builders.TestAssemblyBuilder.Build (स्ट्रिंग AssemblyName, स्ट्रिंग testName, बूलियन autoSuites) पर (TestPackage पैकेज) NUnit.Core.SimpleTestRunner.Load (TestPackage पैकेज) पर NUnit.Core.ProxyTestRunner.Load (TestPackage पैकेज) NUnit.Core.ProxyTestRunner.Load (Tes पर) tPackage पैकेज) NUnit.Core.RemoteTestRunner.Load (TestPackage पैकेज) पर System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage पर (IntPtr एमडी, वस्तु [] args, वस्तु सर्वर, Int32 methodPtr, बूलियन fExecuteInContext, वस्तु [] & outArgs) System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage पर (iMessage संदेश, Int32 methodPtr, बूलियन fExecuteInContext) पर [0]

अपवाद rethrown: System.Runtime.Remoting.Proxies पर । RealProxy.HandleReturnMessage (IMessage reqMsg, IMMAGE retMsg) सिस्टम पर। Runtime.Remoting.Proxies.RealP रॉक्सी।PrivateInvoke (MessageData & msgData, Int32 प्रकार) NUnit.Core.TestRunner.Load (TestPackage पैकेज) पर NUnit.Util.TestDomain.Load (TestPackage पैकेज) NUnit.ConsoleRunner.ConsoleUi.Execute (ConsoleOptions विकल्प) में पर NUnit.ConsoleRunner.Runner.Main (String [] args)

WRN पर: विधानसभा बाध्यकारी लॉगिंग बंद है। विधानसभा बाँध विफलता लॉगिंग को सक्षम करने के लिए 1. नोट रजिस्ट्री मान [! HKLM \ Software \ Microsoft \ फ्यूजन EnableLog] (DWORD) सेट: कुछ प्रदर्शन विधानसभा बाँध विफलता प्रवेश से संबंधित जुर्माने वहाँ है। इस सुविधा को बंद करने के लिए, रजिस्ट्री मान [HKLM \ Software \ Microsoft \ Fusion! EnableLog] को हटाएं।

http://app1017-build.oy.gb.sportingindex.com:8080/job/TradingServices.DataAcquisition-Dev/ws/DataAcquisition/build.proj(86,5): त्रुटि एमएसबी 6006: "nunit-console.exe" कोड -100 से बाहर निकला। बिल्डिंग परियोजना " (डिफ़ॉल्ट लक्ष्य) हो गया - विफल

बिल्ड विफल

कृपया ध्यान दें:।।। हम हडसन पर हमारे निर्माण को वापस लाया गया और अब फिर से करने से अधिक धीरे-धीरे फ़ाइलें मैं यह कैसे जाता है पर वापस रिपोर्ट करेंगे। की कोशिश की कुछ कोई लाभ नहीं हुआ इस पर शामिल सिर मिल दुर्भाग्य से। शर्म की बात है!

अद्यतन मैं थोड़ी देर के लिए इस पृष्ठ पर यह नहीं किया गया है लेकिन ऐसा लगता है कि कई सारे समाधान हैं। अगर मैं उन सभी को जवाब के रूप में चिह्नित कर सकता हूं तो मैं चाहता हूं! आप में से जो लोग यहां अपना रास्ता खोज रहे हैं उन्हें शायद प्रत्येक विकल्प के बराबर क्रेडिट देना चाहिए।

+0

आपके परीक्षण क्या चल रहे हैं? –

+0

हडसन http://hudson-ci.org/ –

उत्तर

6

चेक अपने विधानसभा का लक्ष्य ढांचा संस्करण NUnit परीक्षण धावक का समर्थन करता है के रूप में ही कर रहे हैं। समर्थित रनटाइम्स की सूची के लिए runFile.exe.config देखें।

इसके अलावा, अगर आप परिवार कल्याण 3 से परिवार कल्याण से 4 megrated है, वे अलग अलग क्रम है (CLR अलग है)।

+0

हमारी सभी परियोजनाएं नेट फ्रेमवर्क 4 का उपयोग कर रही हैं और जब से मैंने यहां शुरुआत की है। ये परीक्षण शुक्रवार को एक प्रतिबद्धता तक पिछले सप्ताह चल रहे थे, और यह कहना मुश्किल है कि क्या परिवर्तन किया गया है। समर्थित रनटाइम v1.0.3705 से v 2.0.50727 –

+0

FW 4 रनटाइम 4 से हैं। [याहू मुझे अगला याद नहीं है :)] रनटाइम 2.xxx एफडब्लू 2, 3, 3.5 है। तो इस तरह से देखने की कोशिश करें। Nnnit अपडेट करें, पथ सत्यापित करें ... आदि – ili

+0

हाँ मैंने runFile.exe का उल्लेख करने के बाद nUnit 2.6 डाउनलोड किया है ... –

52

मुझे X64 पीसी, पर कंसोल ऐप के साथ यह समस्या थी, बिल्ड को x86 के रूप में सेट किया गया था और यह अभी भी क्रैश हो गया था। मैं कंसोल ऐप पर गुणों में गया और निर्माण के तहत मैंने अपने प्लेटफार्म लक्ष्य को x86 से किसी भी सीपीयू में बदल दिया, फिर अचानक सभी परीक्षणों ने काम किया और सफलतापूर्वक भाग लिया।

नोट के

, विन्यास प्रबंधक के मंच क्षेत्र कर सकते हैं "झूठ" आप और वास्तव में नहीं है करने के लिए प्रतिबिंबित करने के लिए परियोजना के गुणों को वास्तव में क्या करने के लिए कॉन्फ़िगर किया गया है क्या। मेरे कॉन्फ़िगरेशन मैनेजर ने कहा कि "Common.dll" को "कोई भी CPU" के रूप में बनाया जा रहा था, लेकिन प्रोजेक्ट गुण (सेटिंग जो वास्तव में मायने रखती है) इसे "x86" के रूप में बना रही थी।

enter image description here

+0

हाँ, मुझे लगता है कि हमने यह कोशिश करनी होगी। यह हमारी परियोजना का एक पूरी तरह से असंबंधित हिस्सा साबित हुआ जो हमारी टीम में किसी ने भी काम नहीं किया था। तो हमने इसे टिप्पणी की (अब अप्रयुक्त) और यह काम किया ... कुछ भी नहीं सीखा! –

+0

+1 किसी भी CPU परिवर्तन ने भी मेरे लिए यह तय किया है। –

+2

+1 किसी भी सीपीयू परिवर्तन ने इसे मेरे लिए भी तय किया :) –

1

मुझे जागने के लिए धन्यवाद Ashes999।

यह समस्या फिर से लौट आया। और वापस रोलिंग और अपलोड करने के साथ काम नहीं किया। यह एक मॉनीटर ऑब्जेक्ट बन गया जो हम अब भी उपयोग नहीं करते हैं। टिप्पणी की और तय किया।

यह खोजने का तरीका डीबग ऑल यूनिट टेस्ट कर रहा है। इसे हर जगह ठीक करें। अगर टी रुकता नहीं है तो गलती करें।

+0

विवरण के लिए धन्यवाद। मैं मॉनीटर का भी उपयोग नहीं करता, इसलिए इससे मेरी समस्या ठीक नहीं हुई। मैं अपना जवाब पोस्ट करूंगा। – ashes999

3

यह बेवकूफ लग सकता है, लेकिन, अपनी परियोजना और प्रोसेसर आर्किटेक्चर की जांच करें।मेरे मामले में, मैं पर 64-बिट परीक्षण चला रहा था जो मुझे लगता है कि 64-बिट मशीन थी (क्योंकि यह 64-बिट परियोजनाओं का निर्माण कर रहा था)।

क्या सोचें? यह वास्तव में 32-बिट मशीन थी। तो NUnit.exe 32-बिट (स्पष्ट रूप से) के रूप में भाग गया, और 64-बिट परीक्षणों को समझ नहीं सकता।

समाधान? अपने परीक्षणों का x86 और x64 संस्करण बनाएं, और x86 मशीनों पर x86 को चलाएं, और x64 मशीनों पर x64 वाले।

स्पष्ट। लेकिन बाहर की जाँच करने लायक है।

5

मैं कंसोल या डब्ल्यूपीएफ एप्लिकेशन के खिलाफ परीक्षण करते समय अक्सर इस पर आ जाता हूं। कुछ कारणों

  • सबसे पहले, सुनिश्चित करें कि आप आवेदन नेट फ्रेमवर्क 3 या 4 क्लाइंट प्रोफ़ाइल
  • फिर दोनों आवेदन और परीक्षण परियोजनाओं पर लक्ष्य ढांचे नेट संस्करण की तुलना पर नहीं चलता है बनाते हैं। वे एक ही
  • बिल्ड टैब पर प्लेटफ़ॉर्म लक्ष्य की जांच करनी चाहिए। वे वही होना चाहिए। उदाहरण के लिए, यदि परीक्षण प्रोजेक्ट में "कोई भी CPU" लक्ष्य है, तो एप्लिकेशन में "कोई भी CPU" होना चाहिए।
+0

यह मेरे लिए काम किया। – user85

3

मेरे लिए, अपवाद अमान्य /process=single नूनिट के तर्क के कारण हुआ था। मैं मूल्य बदलते हैं, तो अपवाद चला गया है:

/process=separate 

या

/process=multiple 

पी/एस: देर से जवाब है, लेकिन सिर्फ संदर्भ के लिए ..

9

सभी प्रश्नों के उत्तर के लिए एक छोटी सी अलावा । आपको अपने मामले में एनयूनीट रनर प्लेटफ़ॉर्म (मेरे लिए रिशेर्पर) को बदलने की आवश्यकता हो सकती है। उदाहरण देखें enter image description here

2

मेरी स्थिति थोड़ा अलग थी। एक यूनिट टेस्ट चलाने के बाद त्रुटि काफी यादृच्छिक रूप से दिखाई दी जो संशोधित किया गया था।

मैंने परीक्षण हटा दिया और त्रुटि चली गई।

मैंने परीक्षण को फिर से बनाया और त्रुटि वापस आई।

मैंने परीक्षण का नाम बदल दिया और त्रुटि चली गई।

मैंने परीक्षण का नाम बदल दिया और समस्या फिर से नहीं हुई।

आशा है कि इससे मदद मिलती है!

बेन

1

किसी को अब भी समस्या आ रही है, तो आप भी ढांचा क्षेत्र परीक्षण धावक पर अपने शामिल परियोजना में एक मैच के लिए (सिर्फ AlexM द्वारा संदर्भित एक के अधिकार के लिए क्षेत्र निर्धारित करने की आवश्यकता हो सकती है)।

मेरे मामले में, मैं विंडोज फोन 8 लाइब्रेरी के लिए एक टेस्ट सूट लिख रहा था, और एनयूनीट उस फ्रेमवर्क संस्करण को सही ढंग से समझने में असमर्थ था जिसका उपयोग करना चाहिए।

5

यह सुनिश्चित करें कि इस सेटिंग सही है: टेस्ट मेनू -> टेस्ट सेटिंग्स -> डिफ़ॉल्ट प्रोसेसर आर्किटेक्चर -> 64/86। यह मेरे मामले में गलत था और यह एक ही मुद्दे के साथ विफल रहा।

+0

मेरा संदर्भ यहां है: https://github.com/nunit/nunit-vs-adapter/issues/16 – MaurGi

+0

धन्यवाद कि मेरा दिन –

+0

सहेजें यह सही काम है :) – Neo

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