如何在使用System.Data.OracleClient时指定要使用的Oracle Home

时间:2009-09-22 17:13:41

标签: .net oracle

我正在使用.NET中的Excel Addin(VSTO)连接到Oracle 10g数据库。

我在Vista x64上运行并且已经发现我需要在我的机器上安装x86和x64 Oracle客户端,以便32位进程(如PL / SQL Developer)和64位进程(如示例)。为“任何CPU”编译的NET控制台应用程序可以连接到Oracle。

这一切都很好。我的问题是Excel是一个托管.NET DLL的32位应用程序,根据ProcessMonitor,excel进程正在“C:\ oracle \ product \ 10.2.0 \ client_1 \”中加载“OraClient10g_home1”Oracle客户端BIN \ oci.dll“(恰好是64位客户端),当我的.NET代码试图使用它时,它会给我一个BadImageFormatException。

我想要的是告诉.NET加载32位“OraClient10g_home2”Oracle客户端(即“C:\ oracle \ product \ 10.2.0 \ client_2 \ BIN \ oci.dll”)。如何告诉.NET使用client_2而不是client_1。

2 个答案:

答案 0 :(得分:4)

尝试更改HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ HOME \ ODP.NET中的DllPath。

答案 1 :(得分:2)

你可以: