使用Oracle Client 64位和Visual Studio 2010时出现BadImageFormatException!

Dat*_*ase 20 oracleclient visual-studio-2010 oracle11g windows-7 windows-7-x64

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

尝试加载oracle客户端库会引发BadImageFormatException

它似乎

在安装了32位Oracle客户端组件的64位模式下运行时,将发生此问题.

但是我配置了系统 - 这是规格:

  • Windows 7 64位
  • Visual Studio 2010 Premium
  • Oracle Client 11g R2 64Bit作为运行时安装

有什么想法吗?

Ati*_*gur 19

我很抱歉添加第二个答案,但如果你在同一台机器上安装了64位和32位客户端,你可能也会遇到这个问题.

安装了两个客户端

C:\oracle\product\11.2.0\client32Bit
C:\oracle\product\11.2.0\client64Bit
Run Code Online (Sandbox Code Playgroud)

控制路径环境变量.首先是哪个Oracle客户端,它是在其他客户端之前加载的.

 echo %PATH%
 XXXX;C:\oracle\product\11.2.0\client64Bit\BIN;XXX
Run Code Online (Sandbox Code Playgroud)

由于我的64位Oracle客户端是PATH中的第一个,因此VS.NET尝试将其用于Oracle Connections并抛出Bad Image Exception.

  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"
Run Code Online (Sandbox Code Playgroud)

在此之后你可以连接oracle.当然,您可以将32Bit客户端放在路径中,但我更喜欢将32位之前的64位客户端放在其他应用程序中.


小智 9

最近我在64位O/S上运行Visual Studio时已经看过几次了.一个简单的工作方法是在64位开发机器上安装32位客户端.

此致,皮特

  • 是的,但您还需要确保您的应用程序使用的是32位应用程序池.打开IIS管理器,然后单击池上的"高级设置",然后"启用32位应用程序= True".https://help.webcontrolcenter.com/KB/a1114/how-to-enable-32-bit-application-pool-iis-7-dedicatedvps.aspx (3认同)

Kei*_*rer 9

升级到Windows 7后,我遇到了同样的错误.我通过在Visual Studio的"属性"页面的"生成"选项卡中将平台目标更改为x86来解决此问题.


小智 6

您在Visual Studio 2013和64位Oracle客户端(11和12版本)中也可能遇到同样的问题.我的解决方案是:

a) 桌面项目.项目属性>构建>禁用'首选32位'复选框.

b) ASP.NET项目或网站.主菜单>工具>选项>项目和解决方案> Web项目>启用'将64位版本的IIS Express用于网站和项目'复选框.

  • 嗨..谢谢你..答案 (b) 对我有用..我讨厌安装 32 位 oracle 和 64 位...这是针对 Visual Studio 2015 (2认同)