2012-07-27 10 views
8

के बीच एक मेल नहीं था मेरे पास एक वेब फॉर्म वेब साइट प्रोजेक्ट है। यह वेबसाइट 4 वर्ग पुस्तकालय परियोजनाओं का संदर्भ देती है। इन कक्षा पुस्तकालयों में से 3 एक तृतीय पक्ष असेंबली का संदर्भ देते हैं। मुझे 3 कक्षा पुस्तकालय परियोजनाओं में से प्रत्येक के लिए निम्न संकलक त्रुटि मिल रही है।वेब साइट: एमएसबी 3270: प्रोसेसर आर्किटेक्चर

ASPNETCOMPILER: त्रुटि ASPCONFIG: 'myAssembly' फ़ाइल या विधानसभा लोड नहीं कर सका या उसके निर्भरता में से एक। गलत प्रारूप वाले प्रोग्राम को लोड करने का प्रयास किया गया था। [परियोजना। मेटाप्रोज़]

मैंने क्लास लाइब्रेरी प्रोजेक्ट्स पर AnyCPU/x86/x64 के सभी संभावित संयोजनों का प्रयास किया है। मैं इसे वेब साइट प्रोजेक्ट पर नहीं बदल सकता। मेरे पास तीसरे पक्ष के डीएलएल का x86 और x64 संस्करण दोनों है। दोनों कोशिश की।

"ClassLibrary.csproj" (डिफ़ॉल्ट लक्ष्य) (4) -> (ResolveAssemblyReferences लक्ष्य) -> C: \ Windows \ Microsoft.NET \ फ्रेमवर्क \ v4.0.30319 \ Microsoft.Common.targets (1561 , 5 ): MSB3270 चेतावनी: वहाँ था का प्रोसेसर आर्किटेक्चर परियोजना निर्माण किया जा रहा "MSIL" और संदर्भ की प्रोसेसर आर्किटेक्चर के बीच एक बेमेल 'ThirdPartyDll, संस्करण = xxx, संस्कृति = तटस्थ, processorArchitectu फिर से = 86 " , "x86"। यह विसंगति रनटाइम विफलताओं का कारण बन सकती है। कृपया लक्षित प्रोसेसर आर्किटेक्चर से मेल खाता है पर चांग प्रबंधक पर Configurati के माध्यम से अपनी परियोजना के लक्षित प्रोसेसर आर्किटेक्चर ing इतनी के रूप में अपनी परियोजना और संदर्भ के बीच प्रोसेसर आर्किटेक्चर संरेखित, या एक प्रोसेसर आर्किटेक्चर के साथ संदर्भों पर निर्भरता वें देने पर विचार करना आपकी परियोजना का [ClassLibrary.cspro जे]

भाई समाधान कॉन्फ़िगरेशन को दर्शाता है। नोट मैं यहां "एएनसीपीयू" से नहीं बदल सकता, केवल प्रत्येक व्यक्तिगत कक्षा पुस्तकालय परियोजना के भीतर से।

Solution configuration

सभी .NET 4

एक वेब अनुप्रयोग के लिए वेब साइट परिवर्तित एक विकल्प नहीं है।

धन्यवाद,

+0

डेविड सैक का जवाब यहां देखें: http://stackoverflow.com/questions/10113532/visual-studio-c-c-solution-hitting-mismatch-between-processor-architecture –

उत्तर

5

जाहिर है, आपके पास मूल 32 बिट डीएलएल है। इसलिए आईआईएस पर एप्लिकेशन पूल को 32 बिट मोड में .NET फ्रेमवर्क चलाने के लिए कॉन्फ़िगर किया जाना चाहिए।

इसे आईआईएस प्रबंधक में कॉन्फ़िगर किया जा सकता है। "एप्लिकेशन पूल" पर जाएं, प्रासंगिक एप्लिकेशन पूल का चयन करें और "उन्नत सेटिंग्स ..." संवाद खोलें। 32 बिट विकल्प शीर्ष के करीब है।

+0

वही बात तीसरे पक्ष के डीएल के 64 बिट संस्करण के साथ होती है। एक बार जब मैं एक dev सर्वर पर तैनाती कर रहा हूं तो मैं ऐप पूल को 32-बिट पर सेट कर दूंगा। –

+0

फिर ऐसा लगता है जैसे तृतीय पक्ष लाइब्रेरी में और निर्भरताएं हैं जो माइक्रोसॉफ्ट के सी रनटाइम डीएलएल की तरह नहीं मिल सकती हैं। वैसे भी क्या डीएलएल है? एक निजी या ओपन-सोर्स लाइब्रेरी? – Codo

+0

http://dtsearch.com/ –

0

अपने संदर्भित विधानसभाओं में से एक केवल 86 है और इस तरह परियोजना श्रृंखला है कि संदर्भ देता है यह केवल x86 के लिए निर्माण किया जाना चाहिए। यह भी सुनिश्चित करें कि जब आप अपना आवेदन पूल तैनात करते हैं तो 32 बिट के लिए कॉन्फ़िगर किया जाता है।

+0

मैंने यह कोशिश की है। सभी परियोजनाओं को x86 पर सेट करना। मुझे त्रुटि मिलती है फ़ाइल या असेंबली 'प्रोजेक्ट' या इसकी निर्भरताओं में से कोई भी लोड नहीं हो सका। एक गलत प्रारूप के साथ एक प्रोग्राम लोड करने के लिए एक प्रयास किया गया था। X86 थर्ड-पार्टी डीएल के साथ और सब कुछ x86 पर सेट है। –

+0

सुनिश्चित करें कि आपने सभी समाधान कॉन्फ़िगरेशन के लिए ऐसा किया है। एक साफ करो दोबारा जांचें कि आपके पास एक स्थानीय स्थानीय संस्करण या जीएसी में कोई संघर्ष नहीं है। ध्यान रखें कि यदि तृतीय पक्ष लाइब्रेरी ए 32 बिट है और प्रोजेक्ट बी इसका उपयोग करता है, तो प्रोजेक्ट सी प्रोजेक्ट बी का उपयोग करता है - इन तीनों को x86 –

+0

होना चाहिए GAC में कोई संस्करण नहीं है। स्थानीय संस्करण से आपका क्या मतलब है? बिन फ़ोल्डर में? और 'सभी समाधान विन्यास' द्वारा? उपरोक्त संपादन देखें (समाधान 'AnyCPU' विकल्प का स्क्रीन कैप्चर)। –

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