2013-02-01 19 views
6

मैं odp.net 32 ​​बिट स्थापना विजुअल स्टूडियो 2012 के लिए मैं Oracle.DataAccess.dll के लिए एक संदर्भ सेट और Oracle करने के लिए अपने कनेक्शन काम कर रहा है स्थापित।Oracle.DataAccess बेमेल त्रुटि

जब मैं परियोजना (.net 4) का निर्माण मैं निम्नलिखित त्रुटि मिलती है। यह परियोजना एसीसीपीयू बनाने के लिए तैयार है (मेरा वर्कस्टेशन 64 बिट है और सर्वर जहां हम अंततः 32 बिट पर तैनात करेंगे)

'परियोजना के प्रोसेसर आर्किटेक्चर के बीच एक मेल नहीं था "एमएसआईएल" और प्रोसेसर आर्किटेक्चर संदर्भ Oracle.DataAcess, संस्करण 4.112.3.0, संस्कृति = तटस्थ, PublicKeyToken = 89b483f429c47342, प्रोसेसर आर्किटेक्चर = x86, "x86"। यह विसंगति रनटाइम विफलताओं का कारण बन सकती है। इतनी के रूप में अपनी परियोजना और संदर्भ के बीच प्रोसेसर आर्किटेक्चर संरेखित, या एक प्रोसेसर आर्किटेक्चर कि अपनी परियोजना '

की लक्षित प्रोसेसर आर्किटेक्चर से मेल खाता के साथ संदर्भ पर निर्भरता लेने के लिए कृपया विन्यास प्रबंधक के माध्यम से अपनी परियोजना के लक्षित प्रोसेसर आर्किटेक्चर को बदलने पर विचार

यह केवल एक बनाम.net चेतावनी है, हालांकि इससे छुटकारा पाने का कोई तरीका है?

उत्तर

14

जैसे तुमने कहा, यह सिर्फ एक चेतावनी है। चूंकि ODP.net "AnyCPU" नहीं है, चेतावनी इंगित करती है कि आपके पास निर्भरता है जो मेजबान ऑपरेटिंग सिस्टम को अनुकूलित करने वाला नहीं है क्योंकि आपका स्वयं का आवेदन है। जब तक आपका odp.net इंस्टॉल बिट्स के मामले में ओएस से मेल खाता है, तो आप ठीक होंगे। लेकिन संकलक उस दृढ़ संकल्प को करने में असमर्थ है और आपको सिर देने की कोशिश कर रहा है।

मैं त्रुटि को अक्षम करने में जो एक संभावित परिवर्तन (मैं proj फाइल करने के लिए यह सोचते हैं रहा हूँ) भी शामिल है पर एक connect article मिला:

<PropertyGroup> 
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch> 
</PropertyGroup> 

किसी भी मामले में, अपने "AnyCPU" अनुप्रयोग ठीक चलेगा जब तक आप 32 बिट odp.net सर्वर पर स्थापित करते हैं, तब तक आपके सर्वर पर 64 बिट odp.net के समान संस्करण जैसा संदर्भित किया गया है (या प्रकाशक नीतियों को बाद के संस्करण पर रीडायरेक्ट करने के लिए ठीक से स्थापित किया गया है)। किसी भी भ्रम को खत्म करने के लिए मैं आम तौर पर "झूठी" के संदर्भ में "स्थानीय कॉपी करें" सेट करता हूं। दूसरे शब्दों में, मैं डीएल के एक विशिष्ट संस्करण के खिलाफ संकलित करता हूं लेकिन इसे जीएसी से हल करने के खिलाफ चलाने देता हूं (जिसमें प्रकाशक नीतियां शामिल हैं जो अधिकांश odp.net प्रतिष्ठानों में शामिल हैं)।

आप 32 बिट अनुप्रयोगों को चलाने/डीबग करने के लिए या विजुअल स्टूडियो के लिए ओरेकल डेवलपर टूल्स के साथ आने वाले एकीकृत टूलींग का उपयोग करने के लिए अपने देव मशीन (आदर्श रूप से वही संस्करण दोबारा) पर 32 बिट odp.net भी इंस्टॉल कर सकते हैं। "विजुअल स्टूडियो के अंदर।

सब ने कहा, वहाँ अधिक यहाँ उससे कहीं है। यदि आप आवेदन कर रहे हैं वास्तव में चल रहा है (जो कि "यह केवल एक चेतावनी" के साथ निहित है), 64 बिट के रूप में, यह आपके 32 बिट स्थापना का उपयोग नहीं कर रहा है। मुझे लगता है कि आपकी मशीन में पहले से ही 64 बिट संस्करण स्थापित है (एकाधिक ऑरैकल घर)।

0

This is only a vs.net warning however is there any way to get rid of this?

मेरा मानना ​​है कि कोई रास्ता नहीं है कि से छुटकारा पाने के लिए है, जब से तुम 32 बिट मशीन पर तैनात करने के लिए चाहते हैं और आप 64 बिट पर पैदा करते हैं। यह सिर्फ एक चेतावनी है जो आपको सूचित करती है कि चालक के साथ गलत हो सकता है। अगर आप अब क्या कर रहे हैं तो चिंता करने के लिए कुछ भी नहीं।

आप इसे उम्मीद करनी चाहिए - आप 64 बिट वास्तुकला पर 32 बिट पुस्तकालयों का उपयोग करें।

0

एक अन्य समाधान:

डाउनलोड ODAC 11.2 Release 5 (11.2.0.3.20) और 86 के लिए अपने संकलक निर्धारित किया है। मुझे 100% यकीन है कि यह ऑरैकल से संबंधित सभी चेतावनियों को साफ करेगा। नामस्थान सेट करें: using System.Data.Odbc;

फिर डेटाबेस कनेक्शन बनाएं।

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