Jawaban singkatnya:
Catatan:Saya mencoba menginstal ODP.NET baru melalui klien sebelumnya dan dapat terhubung ke database menggunakan connectionstring berikut...
Ini menunjukkan bahwa instalasi baru Anda tidak memiliki tnsnames.ora dan sqlnet.ora di /Network/Admin. Jika Anda setuju dengan klien lama menggunakan instalasi ODP.net baru, Anda dapat menyalinnya dari instalasi lama atau Anda dapat menentukan lokasi global untuk semua instans dengan variabel lingkungan TNS_ADMIN, yaitu TNS_ADMIN=C:\MyOracleFilesDir
Jawaban panjangnya:
Saat Anda menginstal klien baru, kemungkinan besar juga menginstal file kebijakan penerbit ke GAC yang mengarahkan referensi ke Oracle.DataAccess.dll lama ke versi baru selama proses resolusi perakitan. Oracle.DataAccess kemudian menempatkan klien melalui parameter (DllPath) di registri. Anda dapat mengganti lokasi ini dengan mengatur dllPath di file .config Anda:
<configuration>
<oracle.dataaccess.client>
<add key="DllPath" value="C:\yourotherpath"/>
</oracle.dataaccess.client>
</configuration>
Ini umumnya yang saya lakukan, tetapi ketika saya lebih memahami ini, saya menyadari bahwa saya memaksakan dll yang lebih baru terhadap klien yang lebih lama. Jika tujuan Anda adalah membiarkan klien lama tidak tersentuh, opsi yang lebih baik mungkin adalah menghapus kebijakan penerbit dari GAC (Saya tidak berpikir mereka bahkan diinstal dengan instalasi ODAC penuh, hanya ODP.net):
Jika Anda perlu menginstal ulang, biasanya mereka dapat ditemukan di oraclepath\odp.net\PublisherPolicy.
Lain, dan mungkin opsi jangka panjang yang lebih baik, adalah mengonfigurasi klien lama untuk mengabaikan kebijakan penerbit:http://msdn.microsoft.com/en-us/library/cf9025zt%28v=vs.80%29.aspx
Akhirnya, saya cukup yakin komponen .net untuk kerangka kerja 2.0 vs. 4.0 adalah opsi penginstalan terpisah selama penginstalan ODP.net. Saya pikir Anda mungkin dapat menghindari masalah ini hanya dengan tidak menginstal komponen 2.0. Pada catatan itu Anda dapat melakukan pekerjaan serupa dengan mengembangkan proyek baru Anda terhadap odp.net 64 bit sebagai gantinya. Seperti v2.0 dan v4.0, 32 bit dan 64 bit juga tidak memiliki kesadaran satu sama lain.