PresentationCore.dll और WindowsBase.dll में PresentationCore और WindowsBase DLLs का उपयोग करते हुए दोनों माइक्रोसॉफ्ट .NET फ्रेमवर्क 3.0 के साथ शामिल किए गए हैं, और प्रत्येक dll के दो संस्करणों डिस्क पर स्थापित कर रहे हैं:दोनों x64 और x86 वातावरण
- एक सी के तहत x64 संस्करण: \ Program Files \ संदर्भ विधानसभाओं \ Microsoft \ फ्रेमवर्क \ v3.0
- सी के तहत एक x86 संस्करण: \ Program Files (x86) \ संदर्भ विधानसभाओं \ Microsoft \ फ्रेमवर्क \ v3.0
इन डीएलएस के संदर्भ जोड़ने तक, हमारे एएसपी.नेट वेब ऐप में सक्षम था "किसी भी CPU" के लिए संकलित किया जाए और बिना किसी समस्या के 32 बिट या 64 बिट मोड में चलाया जाएगा।
Could not load file or assembly 'PresentationCore' or one of its dependencies. An attempt was made to load a program with an incorrect format.
जाहिर है: मानक के माध्यम से करने के लिए, कहते हैं, PresentationCore एक संदर्भ जोड़ने के बाद "जोड़ें संदर्भ" संवाद (- -> नेट संदर्भ जोड़ें> PresentationCore), वेब अनुप्रयोग जब निम्न त्रुटि के साथ 64 बिट मोड में विफल रहता है ऐसा इसलिए है क्योंकि प्रेजेंटेशनकोर डीएल के 32 बिट संस्करण को लोड करने के लिए 64 बिट ऐप पूल कोशिश कर रहा है और असफल रहा है।
अब, मैं एक छोटे से इस से उलझन में हूँ ...
- अन्य .नेट फ्रेमवर्क DLLs (Microsoft.NET/Framework64 या से लोड हो रहा है मूल उनके 64 और x86 संस्करण के बीच स्विच करने लगते हैं Microsoft.NET क्रमशः/फ्रेमवर्क)। प्रेजेंटेशनकोर और विंडोजबेस क्यों अलग हैं?
- विजुअल स्टूडियो केवल "संदर्भ जोड़ें" संवाद में ".NET" टैब के अंतर्गत मुझे 32-बिट संस्करण क्यों पेश करता है? अगर मैं 64 बिट संस्करण चाहता हूं, तो मुझे इसके लिए "ब्राउज" करना होगा।
- क्या अन्य डीईटी फ्रेमवर्क पुस्तकालयों के लिए ऐसा लगता है कि सही डीएलएल का चयन करने का कोई आसान तरीका है?
हम हमेशा कि स्वचालित रूप से निर्माण समय लक्ष्य पर्यावरण के bitness के आधार पर संदर्भ स्वैप जाएगा MSBuild एक्सएमएल का एक सा लिख सकते हैं, लेकिन यह है कि हम कुछ .नेट फ्रेमवर्क DLLs के लिए क्या करने के लिए नहीं होना चाहिए की तरह लगता है। क्या देता है?
धन्यवाद!
क्या आप वाकई ब्राउज़ का उपयोग करके संदर्भ नहीं जोड़ते हैं? क्या आपने इसे हटाने की कोशिश की है और फिर फिर से जोड़ दिया है? – svick
हाँ, बिल्कुल यकीन है। और हां, हमने इसे हटाने और इसे कई बार फिर से जोड़ने का प्रयास किया है। –
मैंने ऐप पूल उन्नत सेटिंग्स में "32-बिट एप्लिकेशन सक्षम करें" सक्षम करके इस समस्या को ठीक किया है। – Nippysaurus