visual-studio-2010 - 使用 Oracle 客户端 64 位和 Visual Studio 2010 时出现 BadImageFormatException!

标签 visual-studio-2010 windows-7 oracle11g windows-7-x64 oracleclient

我们的一名开发团队成员遇到了错误

Attempt to load oracle client libraries threw BadImageFormatException

看来

This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.

但配置系统的是我 - 以下是规范:

  • Windows 7 64 位
  • Visual Studio 2010 高级版
  • Oracle 客户端 11g R2 64 位作为运行时安装

有什么想法吗?

最佳答案

很抱歉添加第二个答案,但如果您在同一台计算机上安装了 64 位和 32 位客户端,您也可能会遇到此问题。

安装了两个客户端

C:\oracle\product\11.2.0\client32Bit
C:\oracle\product\11.2.0\client64Bit

控制你的路径环境变量。哪个 Oracle 客户端第一个,它会先于其他客户端加载。

 echo %PATH%
 XXXX;C:\oracle\product\11.2.0\client64Bit\BIN;XXX

由于我的 64 位 Oracle 客户端位于 PATH 中的第一个,因此 VS.NET 尝试将其用于 Oracle 连接并抛出错误图像异常。

  set PATH=C:\oracle\product\11.2.0\client32Bit\BIN;%PATH%
  REM Visual Studio 2008
  "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"
  REM Visual Studio 2010
  "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe"

之后就可以连接oracle了。当然,您可以将 32 位客户端放在路径中的第一位,但对于其他应用程序,我更喜欢将 64 位客户端放在 32 位客户端之前。

关于visual-studio-2010 - 使用 Oracle 客户端 64 位和 Visual Studio 2010 时出现 BadImageFormatException!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5869969/

相关文章:

sql - 为什么oracle不忽略直接路径插入的引用完整性约束

sql - 计算另一行的每个不同条目具有特定条目的行数

visual-studio - 是否可以在 VS2010 中的同一解决方案中运行另一个项目的同时编辑一个项目中的文件?

visual-studio-2010 - 无法加载文件或程序集 "Oracle.DataAccess"或其依赖项之一

sql - 什么是对 SQLite 数据库(仅模式)进行版本控制的好方法(或工具)?

qt - 如何在 Qt 项目中包含 OpenSSL

mysql - 我可以将字符串类型与having子句一起使用吗(例如...having sex ='male')

database - 组件 OLE DB 源没有输入

c++ - 已在 .obj 中定义 - 没有双重包含

windows - 文件夹名称转换在国际 Windows 7 版本中如何工作?