Oracle Dll 加载错误:无法在另一台机器上运行 C# 控制台应用程序

Posted

技术标签:

【中文标题】Oracle Dll 加载错误:无法在另一台机器上运行 C# 控制台应用程序【英文标题】:Oracle Dll Load error: unable to run C# console applicatin on a different machine 【发布时间】:2019-05-16 07:00:41 【问题描述】:

我在我的 Windows 上开发了一个 C# 控制台应用程序(.NET 4.5.2)

8.1(64 位机器)。 我使用了 Visual Studio 2015(唯一可用的选项,因为我们没有 更新的许可证)

我需要为我的应用程序访问 Oracle (11G) 数据库。

我的要求是我的应用程序应该在 clean 上运行 machine,表示没有安装 Oracle 客户端并且 一个 DLL 应该足以访问数据库(就像我们使用 Java 所做的那样

JDBC 罐子)

正如我已经提到的,我在 Windows 8.1 (64

bit) 在 Visual Studio 2015 构建配置中使用 x64

我使用 Oracle.DataAccess 进行数据库访问,我只是添加了 Oracle.Web

也在参考文献中。 在我的机器上一切正常。

现在,当我尝试运行构建的应用程序(包含所有 dll 的 exe

同一文件夹)在 Windows Vista(64 位机器)上 我收到以下错误。

D:\distribution_C#_x64>EAS_Background_Alert.exe 未处理的异常:System.TypeInitializationException:类型 初始化器 r 'Oracle.DataAccess.Client.OracleConnection' 抛出异常。 ---> 系统.Dl lNotFoundException: 无法加载 DLL 'OraOps12.dll': 指定的 模块库 d 找不到。 (来自 HRESULT 的异常:0x8007007E) 在 Oracle.DataAccess.Client.OpsInit.CheckVersionCompatibility (字符串版本) 在 Oracle.DataAccess.Client.OracleInit.Initialize() 在 Oracle.DataAccess.Client.OracleConnection..cctor() --- 内部异常堆栈跟踪结束 ---

我的文件夹中有以下 dll 1.oci.dll 2. ociw32.dll 3.Oracle.DataAccess.dll 4.Oracle.Web.dll 5. oramts.dll 6. oramts12.dll 7. oramtsus.dll 8. orannzsbb12.dll 9. oraocci12.dll 10. oraociei12.dll 11.oraons.dll 12. OraOps12.dll

我从 ODAC(oracle 数据访问客户端文件夹)复制了这些 DLL

安装在我的机器上)

有人可以帮忙吗?

[注意:只是想提一下,我的应用程序会生成 pdf 报告

我的文件夹中也有 itextsharp.dll(它在我的

上运行良好

机器)]

还有,今天我尝试在Windows Vista上运行,明天就可以了

Windows 7。 那么,如何确保构建的应用程序在

上正常运行

所有机器。

【问题讨论】:

如果有帮助,我一直是 Java 开发人员 【参考方案1】:

看起来您没有安装 Oracle Instant client(或任何 other 版本的 Oracle 客户端)。这是一个先决条件。

这是另一个link

下载,解压缩,然后在你的项目中引用它(复制本地:真)

【讨论】:

以上是关于Oracle Dll 加载错误:无法在另一台机器上运行 C# 控制台应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在另一台计算机上查看xperf ETL文件时出错

为啥在某些机器上堆栈溢出,但在另一台机器上出现分段错误?

报告查看器错误

开发机器上的网络核心 Web api 应用程序上的 Kestrel 错误,但在另一台机器上却没有

从在一台机器上工作的浏览器下载 S3 图像并在另一台机器上给出 CORS 错误

OpenCV 程序无法在另一台计算机上运行