【问题标题】:Oracle Data Access Dll is not workingOracle 数据访问 Dll 不工作
【发布时间】:2013-11-20 08:13:33
【问题描述】:

我刚刚将我的电脑重新格式化为 Windows 7 64 位。我打开我以前的项目(总是在任何 CPU 中)并运行它,但我遇到了这个错误

System.InvalidOperationException:尝试加载 Oracle 客户端 库抛出了 BadImageFormatException。这个问题会出现在 使用 32 位 Oracle 客户端组件以 64 位模式运行 安装。 ---> System.BadImageFormatException:尝试 加载格式不正确的程序。 (HRESULT 的例外情况: 0x8007000B)

我已经安装了 Oracle 客户端 win64_11gR2_client,它是 64 位的。任何想法如何解决这个问题?

【问题讨论】:

    标签: c# oracle11g


    【解决方案1】:

    Oracle.ODP 有非托管代码,需要拥有进程来匹配“位数”。

    您需要确保在将程序编译为 AnyCPU 时,它在 64 位环境中运行以匹配您的 64 位驱动程序的位数。您可以检查您的 TaskManager 以查看您的程序在进程名称旁边是否有 * 32(意味着应用程序在 32 位上下文中运行)。

    当您尝试在 x-64 操作系统上使用 Visual Studio 调试应用程序时,通常会发生位数不匹配。

    安装Oracle.ODP的x86驱动即可解决。

    如果您确定只需要支持 x64 位环境,请使用 as x64 而不是 AnyCPU 进行编译。

    【讨论】:

    • 我已经安装了驱动。但是还是会遇到问题。我使用 System.Data....我相信这是导致问题的原因之一,并且该程序集没有 64 位...有什么想法吗?
    • System.Data.OracleClient 还是什么?发生错误时您到底在做什么?在其他地方调试或运行编译的程序集?
    猜你喜欢
    • 2011-10-08
    • 2016-03-15
    • 1970-01-01
    • 2015-03-24
    • 2012-09-13
    • 1970-01-01
    • 2013-12-19
    • 2012-05-24
    • 2016-12-05
    相关资源
    最近更新 更多