मुझे आपका दर्द महसूस होता है, बस तैनाती की स्थिति में कुछ ऐसा ही हुआ। आपके पास शायद कई क्लाइंट स्थापित हैं, और आपका वातावरण पुराने रिलीज़ के लिए dll खींच रहा है (भले ही आपके पास नवीनतम oracle.dataaccess.dll आपके प्रोजेक्ट में सही ढंग से संदर्भित हो)। इसे अपने देव परिवेश पर ठीक करना एक बात है, एक ठेस परिनियोजन सर्वर दूसरी बात है। सुनिश्चित नहीं है कि आपकी तैनाती की स्थिति क्या है, लेकिन यहाँ मेरे लिए क्या काम किया है।
मौजूदा ऑरेकल होम में odp.net को अपग्रेड करने के प्रयास में संघर्ष करने के बाद, नया ऑरेकल होम जोड़ना, आदि, मैंने पाया कि सब कुछ ठीक करने का सबसे आसान तरीका नवीनतम डाउनलोड करना है ओडैक xcopy परिनियोजन के साथ Oracle से, और रीडमी का अनुसरण करें (और देखें यहां इस पर एक पुराने लेख के लिए भी)। मूल रूप से आप स्थानीय रूप से सेटअप करने के लिए एक install.bat फ़ाइल चलाएंगे (अलग फ़ोल्डर में, मेरा c:\oracle_odac था), फिर इस नए फ़ोल्डर में oracle.dataaccess.dll को इंगित करने के लिए अपना प्रोजेक्ट संदर्भ बदलें (मैंने इसके बजाय 4 का उपयोग किया 2.x), और अपने पथ के सामने नए फ़ोल्डर के बिन dirs जोड़ें (c:\oracle_odac\bin और c:\oracle_odac\odp.net\bin\4)। अपने परिनियोजन सर्वर पर, आपको बस संपूर्ण c:\oracle_odac फ़ोल्डर को कॉपी करना होगा (xcopy या फिर भी), और पथ सेट करना होगा।
उस ने कहा, मैं पूरी तरह से प्रबंधित के प्रोडक्शन रिलीज का बेसब्री से इंतजार कर रहा हूं। odp.net Oracle से (अभी बीटा में)।
संपादित करें:बस यह जोड़ने के लिए कि यदि आप अपने ऐप या वेब कॉन्फ़िगरेशन फ़ाइल में dllpath सेट करते हैं तो आप पाथ के साथ गड़बड़ करने से बच सकते हैं। उदाहरण के लिए:
<configuration>
...
<configSections>
<section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
...
<oracle.dataaccess.client>
<settings>
<add name="DllPath" value="c:\oracle_odac\bin"/>
</settings>
</oracle.dataaccess.client>
...
यह अन्य सेटिंग्स जैसे रजिस्ट्री या Machine.config को ओवरराइड करेगा। और यह कई odp.net कॉन्फ़िगरेशन को शांति से मौजूद रहने की अनुमति देगा, और प्रत्येक ऐप को उसी सर्वर पर आवश्यक संस्करण को इंगित करने की अनुमति देगा।