我正在使用.NET连接到Oracle 10g数据库的Excel Addin(VSTO)。如何在使用System.Data.OracleClient时指定要使用的Oracle主目录
我在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 \ BIN \ oci”中加载“OraClient10g_home1”Oracle客户端。 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。
您也可以在app.config中更改它。 http://download.oracle.com/docs/html/E10927_01/InstallODP.htm – Christian13467
这就是我最后做的 – d4nt
你说你使用Microsoft提供的Oracle(System.Data.OracleClient)。我非常惊讶(至少可以这么说),设置这个特定于Oracle提供程序(Oracle.DataAccess)的参数应该可以解决您的问题。 – Mac