无法加载 DLL “OraOps10.dll”

7
我遇到了一个奇怪的问题。我正在开发一个连接Oracle数据库的基于Windows的应用程序。
在初步测试时,我创建了安装程序并在不同的机器上进行了测试。每台机器都安装了Oracle客户端,并且在运行应用程序时没有看到任何问题。
但当我将此安装程序与客户共享时,他会收到错误消息“无法加载DLL OraOps10.dll”。当我询问时,他提到并展示了他的机器上安装了Oracle客户端,并且他能够运行其他连接到Oracle数据库的C#应用程序。
我不明白为什么只有我的应用程序会出现上述错误。我甚至尝试了在https://forums.oracle.com/forums/thread.jspa?threadID=67364上分享的建议,但仍然没有成功。
我甚至尝试了手动复制可执行文件和DLL文件到客户机上。但仍旧面临着相同的问题。
所以请帮助我,告诉我还能做些什么。
谢谢 & 最好的祝福 Sudhakar Chavali
附言:
我正在使用Windows XP操作系统,客户也在使用相同的操作系统。两台机器都是32位操作系统。
这是客户端Oracle安装的位置: C:\oracle\product\10.2.0\client_1\bin,我的情况也是同样的版本。
我们两个都在使用Oracle 10g。

2
启用Fusion日志记录(https://dev59.com/-nVC5IYBdhLWcg3wjx1d),以查看它尝试搜索程序集的位置以及为什么可能无法加载。 - ChrisWue
1
融合日志在过去帮助我调试ODP.NET的问题。然而,在这种情况下,似乎.NET部分正常工作,并且当它尝试定位本地DLL时发生错误。融合日志可能不会在这里起到帮助作用。 - Codo
非常愚蠢的问题(商标):在出现故障的计算机上,c:\oracle\product\10.2.0\client_1\bin 是否在 PATH 中? - Bob Jarvis - Слава Україні
4个回答

11
ODP.NET 驱动程序主要由两部分组成:.NET 部分和本地 OCI 部分。该错误消息表明 .NET 部分正在工作,但无法加载本地部分。
以下是可能导致此问题的原因:
  • .NET 部分与本地部分之间存在版本不匹配。请注意,OraOps10.dll 属于 Oracle 10g。因此,.NET 部分显然是版本 10,并且正在寻找版本 10 的本地部分。

  • 可能存在位数不匹配。如果 .NET 部分以 64 位模式运行,则将寻找 64 位本地 OCI DLL。在 64 位系统上,任务管理器可以告诉您进程是 32 位还是 64 位。32 位进程用 *32 标记。

  • 注册表可能不包含本地 DLL 的正确路径。ODP.NET 将检索 HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\2.xxx.x.x\DllPath 的值以定位 OCI DLL。请注意,注册表分为 32 位和 64 位部分。根据查看注册表的进程,它会获取不同的值。

最好将所有可用信息添加到您的问题中。这是一个 64 位操作系统吗?是 32 位还是 64 位进程?安装了哪个版本的 Oracle 客户端?Oracle 客户端安装在哪个目录中?您能看到正确的注册表条目吗?

2
就我而言,我遇到了“无法加载DLL“OraOps12.dll”的错误消息。
这是一个Web应用程序,我正在使用Oracle XE。 Web应用程序(客户端应用程序)和Oracle XE数据库服务器都安装在同一台机器上。
Oracle XE数据库服务器附带其自己的Oracle 11客户端,但ASP.NET MVC Web应用程序使用的是Oracle 12客户端。即使我在计算机上安装了Oracle 12即时客户端,ASP.NET MVC网站也无法看到它,它会不断抱怨“无法加载DLL OraOps12.dll”。
我所做的是编辑注册表中的HKLM\Software\Oracle\ODP.NET\DllPath以将其指向Oracle 12即时客户端,而不是与Oracle XE一起安装的Oracle 11客户端。
我稍后会发布更详细的解释。

0

我怀疑要么整个Oracle客户端未安装,要么安装了早期版本。

您应该让客户验证已安装的Oracle客户端版本是否与您的匹配,并且已安装整个客户端,而不仅仅是.Net部分。


0

你能否详细说明一下这个问题,比如目标操作系统是32位还是64位。尝试生成x86和64位安装程序,并检查客户机器。如果没有正确安装Oracle客户端,则客户端电脑可能无法正常运行。这些问题有点棘手。尝试从其他方向来看待它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接