2009-10-30 32 views
171

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

फ़ाइल या असेंबली 'xxxx' या इसकी निर्भरताओं में से कोई लोड नहीं हो सका। एक गलत प्रारूप के साथ एक प्रोग्राम लोड करने के लिए एक प्रयास किया गया था।

यह वही कोड है जिसे मैंने कुछ समय पहले चेक किया था। अब यह क्यों कर रहा है? अब मैं उस xxx प्रोजेक्ट के बिन फ़ोल्डर में केवल डीबग के बजाय डीबग x86 भी देखता हूं। डीबग x86 क्या है और मेरे पास केवल डीबग क्यों नहीं है जैसा कि मैंने बिन फ़ोल्डर में उपयोग किया था?

+2

क्या आपने पुनर्निर्माण करने की कोशिश की है? कभी-कभी मेरे लिए अजीब निर्भरता के मुद्दों को हल करता है ... – mezoid

उत्तर

229

लगता है कि परियोजना के एक हिस्से की तरह x86- केवल के लिए बनाया जा रहा है जबकि शेष किसी भी CPU/x64 के लिए बनाया जा रहा है। यह मुझे भी थोड़ा सा। क्या आप एक x64 (या उह ... IA64) चला रहे हैं?

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

+1

यह परियोजना-> गुण-> बिल्ड, या डीबग-> गुण-> बिल्ड पर भी है। बस वीएस2015 अपडेट किया गया, संस्करण 14.0.25123.00 अद्यतन 2. यह अद्यतन अभी 5/10/16 (कल!) जारी किया गया था। मैंने प्लेटफार्म लक्ष्य को x64 पर सेट किया, जिसके कारण त्रुटि देखी गई। "किसी भी CPU" पर सेट करने से इसे ठीक किया गया है। –

4

यह निश्चित रूप से किसी भी CPU के बजाय x86 संगतता के लिए बनाई गई कुछ परियोजनाओं के साथ एक मुद्दा है। अगर मुझे लगता है कि मैं कहूंगा कि आपकी परियोजनाओं के बीच कुछ संदर्भ शायद परियोजना संदर्भों के बजाय कुछ बिन \ डीबग फ़ोल्डर्स में डीएलएस का संदर्भ दे रहे हैं।

जब कोई परियोजना 'किसी भी सीपीयू' के बजाय x86 के लिए संकलित की जाती है तो डीएल बिन \ डीबग के बजाय बिन \ x86 \ डीबग फ़ोल्डर में जाता है (जो शायद आपके संदर्भ देख रहे हैं)।

लेकिन किसी भी मामले में, आपको अपनी परियोजनाओं के बीच परियोजना संदर्भों का उपयोग करना चाहिए।

170

यदि आपको 64 बिट सर्वर पर आईआईएस 7+ में साइट चलाने के दौरान यह त्रुटि मिलती है, तो आपके पास 32 बिट हैं जो असेंबली हो सकती हैं और आपके एप्लिकेशन पूल में "32-बिट एप्लिकेशन सक्षम करें" विकल्प गलत होगा; इसे सही पर सेट करें और इसे काम करने के लिए साइट को पुनरारंभ करें।

+5

@ माहेम 50 यहां वही है। यह इस बात पर निर्भर करता है कि त्रुटि कहां होती है। यदि यह विजुअल स्टूडियो और कैसिनी वेब सर्वर, फ्रेज़र का अधिकार है। यदि यह आईआईएस 7 + में होता है, तो निक्स उत्तर शायद सबसे अधिक संभावना तय है। –

+25

माइक्रोसॉफ्ट हमें बेहतर त्रुटि संदेश देने शुरू करने जा रहा है? –

+0

यह मेरे लिए सही उत्तर था (x64 पर आईआईएस 6 से x86 पर आईआईएस 7 पर एक साइट ले जाया गया) – DrStalker

6

BadImageFormatException आईआईएस (के बाद से दृश्य स्टूडियो के लिए "कोई भी सीपीयू" निर्माण का उपयोग करके समस्या का समाधान होता नहीं, वी.एस. से चल) पर चल रहे एक आवेदन पर निम्नलिखित की वजह से हो सकता है:

साइट एक एक है सर्वर जो x64 है और 32-बिट अनुप्रयोगों को सक्षम करने के लिए अनुप्रयोग पूल की डिफ़ॉल्ट सेटिंग गलत थी। और आप 32-बिट विधानसभाओं है

विजुअल स्टूडियो के स्तर पर, ठीक है:

  1. बदलें परियोजना सेटिंग "लक्षित सीपीयू" "ANYCPU"
5

को आप सत्यापित करना सुनिश्चित करें "32-बिट पसंद करें" के लिए आपकी सेटिंग। मेरे मामले में विजुअल स्टूडियो 2012 में यह सेटिंग डिफ़ॉल्ट रूप से चेक की गई थी। बाहरी DLL से कुछ भी उपयोग करने का प्रयास विफल रहा जब तक कि मैं अनचेक "32-बिट पसंद करें"

enter image description here

+0

मैं इस अस्पष्ट लेकिन प्रासंगिक विकल्प के लिए आपको धन्यवाद नहीं दे सकता जिसने मुझे बचाया! –

28

inetmgr तो आवेदन pool-> अपने pool- की उन्नत सेटिंग> के लिए आते हैं "32-बिट अनुप्रयोगों सक्षम करें" सही पर सेट का विकल्प होगा; और आईआईएस को पुनरारंभ करें। फिर से जांचें।

+0

यह मेरे लिए ठीक था। स्वीकृत उत्तर मेरा मुद्दा नहीं था। धन्यवाद! – chapman84

+0

दूसरा यह। मैंने अपनी साइट के लिए एक नया ऐप पूल बनाया और इस सेटिंग को टॉगल करना भूल गया था। – AlbatrossCafe

+1

यह मेरे लिए भी तय है। बदलने के लिए मुझे एकमात्र अन्य चीज को पाइपलाइन को एकीकृत करने के लिए बदलना था, क्योंकि इससे उपरोक्त फिक्स लागू होने के बाद भी मुझे एक त्रुटि मिली। – AxleWack

27

मुझे व्यापार ऑब्जेक्ट्स 4 का उपयोग करने के लिए डरावना एसडीके के लिए उपयोग करने का प्रयास करते समय यह त्रुटि हुई थी।

वे पांच BusinessObjects * .dll फ़ाइलों को शिप करते हैं, लेकिन उनमें से सभी 64-बिट हैं।

enter image description here

+0

वह विकल्प मेरे लिए मौजूद नहीं है। विजुअल स्टूडियो 2010 के तहत मेरे लिए इस स्क्रीन पर एकमात्र विकल्प "नई फाइल-आधारित वेबसाइटों और परियोजनाओं के लिए आईआईएस एक्सप्रेस का उपयोग करें" –

0

अगर जबकि आईआईएस के साथ दृश्य स्टूडियो में काम कर रहे एक्सप्रेस और जब प्रकाशित:

लोड करने के लिए अपने वेबपृष्ठ पाने के लिए, मैं \ विकल्पउपकरण पर क्लिक करने की जरूरत है, तो VS2013 में इस सेटिंग को परिवर्तित असफल रहा: enter image description here

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

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