【发布时间】:2014-05-15 16:11:05
【问题描述】:
我正在尝试做一个 Windows 应用程序并连接到一个 Oracle 数据库。目前,这就是我想做的所有事情。当我从开发服务器(Windows 2003 Server)测试它时,它工作正常。我将“输出”文件夹(.exe 文件所在的位置)的内容复制到我的本地计算机(Windows 7)并尝试运行相同的应用程序并出现错误。当我将代码复制到另一台运行 Windows 2003 的服务器时,也会发生同样的事情。我得到的错误是: “无法加载文件或程序集 'Oracle.DataAccess, Version 2.112.3.0,culture=neutral, Public Key Token=89b483f429c47342' 或其依赖项之一。试图加载格式不正确的程序。”
由于我的本地机器或测试失败的服务器上没有 Oracle.DataAccess.DLL 文件,我想也许我可以将 DLL 复制到 Windows 应用程序的输出文件夹,添加对此 DLL 的引用并编译。但这不是解决方案。
有没有什么方法可以解决这个问题,而不必期望运行此应用程序(最终是 Windows 服务)的每台机器都在 GAC 中拥有 Oracle.DataAccess.DLL?我是否必须在运行此应用程序的所有机器上安装 ODAC(比如几百台服务器)?
【问题讨论】:
-
我通过使用 System.Data.OracleClient 而不是 Oracle.DataAccess.Client 解决了这个问题。不确定这是否是解决问题的正确方法,但至少是短期解决方案。
-
NoBullMan - 这可能有效,因为 Oracle.DataAccess.Client 以 x86 和 x64 风格提供。为了使 Oracle.DataAccess.Client 正常工作,您可能需要进行一些额外的配置和/或安装,而这对于 System.Data.OracleClient 来说是不必要的。 IE。如果你有一个 x86 dll 和一个 x64 客户端,反之亦然,它不会工作。