2011-05-27 18 views
5

के रूप में मुझे एक एमवीसी 3.0 साइट बनाने और विशेष रूप से x64 लक्षित करने की आवश्यकता है। मुझे अपने एमवीसी 3.0 साइट को प्लेटफार्म लक्ष्य सेट x64 और MvcBuildViews पर सेट करने के साथ सेट करने का प्रयास करने में कोई समस्या है। जब तक यह विचारों को संकलित करने की कोशिश नहीं करता तब तक सब ठीक हो जाता है। यदि मैं प्लेटफ़ॉर्म लक्ष्य को AnyCPU पर सेट करता हूं तो सबकुछ संकलित हो जाएगा, लेकिन जब x64 पर सेट किया जाता है तो मुझे यह त्रुटि मिलती है:एएसपी.नेट एमवीसी 3.0 बिल्ड बिट्स 64 बिट

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

इसे आसानी से रिक्त एमवीसी 3.0 प्रोजेक्ट बनाकर, प्रोजेक्ट को अनलोड कर, परियोजना फ़ाइल को "सत्य" पर सेट करने के लिए प्रोजेक्ट फ़ाइल को संपादित करने, प्रोजेक्ट को फिर से लोड करने, प्रोजेक्ट की बिल्ड प्रॉपर्टीज में प्लेटफ़ॉर्म लक्ष्य को x64 में बदलने के लिए संपादित किया जा सकता है। , और फिर निर्माण करें।

मुझे उपर्युक्त त्रुटि ऑनलाइन के बारे में कुछ भी नहीं मिला है, बस यह मेल नहीं खाता DLLs (एक x32, एक x64) से संबंधित है, लेकिन यह तब तक समझ में नहीं आता जब तक कि दृश्य निर्माण इंजन 32 बिट या कुछ न हो ।

सही दिशा में मुझे इंगित करने के लिए कोई संकेतों की सराहना की जाएगी। पढ़ने के लिए धन्यवाद!!

उत्तर

7

मुझे इस मुद्दे पर माइक्रोसॉफ्ट से प्रतिक्रिया मिली। मुझे लगता है कि क्या हो रहा है यह है कि विजुअल स्टूडियो 32-बिट कंपाइलर को कॉल करता है जो वेबसाइट को 64 बिट डीएलएल में संकलित करता है। इसके बाद, यह दृश्यों के लिए फिर से 32-बिट कंपाइलर को कॉल करता है। व्यू संकलन को परिभाषित मॉडल से जानकारी प्राप्त करने के लिए 64 बिट वेब प्रोजेक्ट डीएलएल लोड करने की आवश्यकता है। यह वह जगह है जहां "गलत प्रारूप" आता है। 32 बिट कंपाइलर 64 बिट वेब प्रोजेक्ट डीएलएल लोड करने का प्रयास करता है।

अब, विजुअल स्टूडियो कमांड प्रॉम्प्ट से 64 बिट aspnet_compiler.exe को कॉल करना पूरी तरह से काम करता है। लेकिन, मुझे लगता है, चूंकि विजुअल स्टूडियो एक 32 बिट एप्लीकेशन है, यह 64 बिट कंपाइलर लोड नहीं कर सकता है। मुझे 64 बिट कॉल करने के किसी भी तरीके से यकीन नहीं है, और यहां तक ​​कि यदि कोई रास्ता भी था, तो विजुअल स्टूडियो शायद त्रुटियों की अच्छी सूची नहीं दे सका जो आमतौर पर करता है (केवल एक धारणा है क्योंकि मुझे नहीं पता कि कैसे दृश्य स्टूडियो कंपाइलर को कॉल करता है ... एक साधारण कमांड लाइन निष्पादन काम करता है, लेकिन हो सकता है कि यह वास्तव में डीएलएल लोड करता है और वीएस कोड के अंदर से कॉल करता है)

तो, मेरे काम के आसपास MVCBuildViews = संपत्ति के अंदर वास्तविक घोषणा डालना था। मैं फिर 'रिलीज | AnyCPU' संपत्ति समूह में MVCBuildViews = झूठी डालता हूं और साइट को पहली बार लोड होने पर आईआईएस दृश्यों को संकलित करने देता है। यह पूरी तरह से precompiling नहीं है, लेकिन यह काम करेगा।

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