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

标签 .net oracle

我正在 .NET 中开发一个连接到 Oracle 10g 数据库的 Excel Addin (VSTO)。

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

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

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

最佳答案

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

关于.net - 使用 System.Data.OracleClient 时如何指定要使用的 Oracle Home,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1461376/

相关文章:

c# - 构建 .NET 包装器是否需要源代码?

c# - 使用异步线程的退出代码退出应用程序

oracle - 使用 For 循环在 Oracle 过程中检索多行

c# - .Net 中对 LinkedList 的多线程访问

c# - 如何使用 Protobuf.net 更改类型成员的 ProtoMember 索引?

适用于 64 位计算机的 .net mySQL 连接器

oracle - 如何创建生成此解释计划的查询? (甲骨文数据库)

oracle - PL/SQL 过程 - 作为输入的记录列表

mysql - 如何获得表中所有内容的总和?

sql - 优化 Oracle 存储过程