संक्षिप्त उत्तर:
<ब्लॉककोट>नोट:मैंने पिछले क्लाइंट पर नया ODP.NET स्थापित करने का प्रयास किया था और निम्नलिखित कनेक्शनस्ट्रिंग का उपयोग करके डेटाबेस से कनेक्ट करने में सक्षम था...
यह इंगित करता है कि आपके नए इंस्टॉलेशन में /Network/Admin में tnsnames.ora और sqlnet.ora नहीं है। यदि आप नए ODP.net इंस्टॉल का उपयोग कर पुराने क्लाइंट के साथ ठीक हैं, तो आप या तो उन्हें पुराने इंस्टॉलेशन से कॉपी कर सकते हैं या आप TNS_ADMIN पर्यावरण चर के साथ सभी उदाहरणों के लिए एक वैश्विक स्थान निर्दिष्ट कर सकते हैं, अर्थात TNS_ADMIN=C:\MyOracleFilesDir
लंबा जवाब:
जब आप नया क्लाइंट स्थापित करते हैं तो यह सबसे अधिक संभावना है कि प्रकाशक नीति फ़ाइलों को जीएसी में भी स्थापित किया गया है जो पुराने Oracle.DataAccess.dll के संदर्भों को असेंबली रिज़ॉल्यूशन प्रक्रिया के दौरान नए संस्करण में पुनर्निर्देशित करता है। Oracle.DataAccess तब रजिस्ट्री में एक पैरामीटर (DllPath) के माध्यम से क्लाइंट का पता लगाता है। आप अपनी .config फ़ाइल में dllPath सेट करके इस स्थान को ओवरराइड कर सकते हैं:
<configuration>
<oracle.dataaccess.client>
<add key="DllPath" value="C:\yourotherpath"/>
</oracle.dataaccess.client>
</configuration>
यह आम तौर पर मैं करता हूं, लेकिन जैसा कि मैं इसे और अधिक समझता हूं, मुझे एहसास होता है कि मैं एक पुराने ग्राहक के खिलाफ एक नया डीएल मजबूर कर रहा हूं। यदि आपका लक्ष्य पुराने क्लाइंट को अछूता छोड़ना है, तो GAC से प्रकाशक नीतियों को हटाने का एक बेहतर विकल्प हो सकता है (मुझे नहीं लगता कि वे पूर्ण ODAC इंस्टॉल के साथ भी स्थापित हैं, केवल ODP.net):
यदि आपको उन्हें पुनः स्थापित करने की आवश्यकता है तो वे आम तौर पर oraclepath\odp.net\PublisherPolicy पर पाए जाते हैं।
एक और, और शायद एक बेहतर दीर्घकालिक विकल्प, प्रकाशक नीति की उपेक्षा करने के लिए पुराने क्लाइंट को कॉन्फ़िगर करना है:http://msdn.microsoft.com/en-us/library/cf9025zt%28v=vs.80%29.aspxपी>
अंत में, मुझे पूरा यकीन है कि 2.0 बनाम 4.0 ढांचे के लिए .net घटक ODP.net स्थापना के दौरान अलग-अलग इंस्टॉल विकल्प हैं। मुझे लगता है कि आप केवल 2.0 घटकों को स्थापित न करके इस समस्या से बचने में सक्षम हो सकते हैं। उस नोट पर आप इसके बजाय 64 बिट odp.net के विरुद्ध अपनी नई परियोजना विकसित करके एक समान कार्य कर सकते हैं। v2.0 और v4.0 की तरह, 32 बिट और 64 बिट में भी एक दूसरे के बारे में कोई जागरूकता नहीं होती है।