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

时间:2011-05-03 13:11:49

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

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

  

尝试加载oracle客户端库抛出BadImageFormatException

似乎

  

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

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

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

有什么想法吗?

11 个答案:

答案 0 :(得分:19)

我很抱歉添加第二个答案,但如果您在同一台计算机上安装了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 Connections并抛出错误的图像异常。

  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。当然,您可以将32Bit客户端放在路径中,但我更喜欢将32位之前的64位客户端放在其他应用程序中。

答案 1 :(得分:9)

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

问候,皮特

答案 2 :(得分:9)

升级到Windows 7后出现了同样的错误。我通过在Visual Studio的“属性”页面的“构建”选项卡中将平台目标更改为x86来解决此问题

答案 3 :(得分:6)

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

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

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

答案 4 :(得分:3)

我在IIS7的应用程序池中将 32位启用支持更改为 FALSE 。这对我有用。我觉得很容易。 干杯:)

答案 5 :(得分:0)

针对此问题的快速简便解决方案,您只需按照以下步骤操作:

  1. 安装ODACv11.2021Xcopy_x64,运行install.bat文件,然后选中“c:\ oracle”作为创建的路径。
  2. 将oracle 32bit中的网络配置文件夹[包含带有tnsnames.ora文件的admin文件夹]复制到“c:\ oracle”。
  3. 在PATH环境变量中添加了“c:\ oracle”路径。
  4. 享受

    最诚挚的问候, 工程。 Nawaf H. Bin Taleb。

答案 6 :(得分:0)

我得到了相同的异常,我发现当我升级到高于2.0的MVC版本时,就发生了这种情况。在我的MVC 4.0中。

在MVC 2.0中创建新项目解决了这个问题。

答案 7 :(得分:0)

如果您想使用64位,请在此处查看我的答案:
64 bit Oracle DataAccess configuration

如果您满足于32位,只需安装32位版本的Oracle数据访问组件即可。由于Visual Studio的开发服务器是32位,因此不会有任何问题。

答案 8 :(得分:0)

简单的解决方案:适合我。试试这个。

我花了近4个小时来找到BadImageFormatException问题的解决方案。

<强>情境: VS 2012,我试图第一次将实体模型添加到Oracle数据库。我知道为oracle数据库添加模型有两个步骤:

  1. 使用server explore连接oracle数据库(将创建连接字符串,并在添加模型时使用)
  2. 使用现有的连接字符串添加模型(在步骤1中创建)。
  3. 但是我在第1步中遇到了BadImageFormatException警告并且找到了解决方案。 解决:

    1. 按照链接中的说明操作,完成oracle客户端安装http://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html
    2. 一旦安装成功完成,那么简单的步骤即。将模型添加到项目中。这里使用dropdownlist中的现有连接字符串并提供userid / pwd。
    3. 然后你准备好使用model:)

答案 9 :(得分:0)

如果您通过Visual Studio运行应用程序,则通过访问“项目和解决方案”下的“ Web项目”选项,将“将IIS Express用于网站和项目的64位版本”复选框选中。 Visual Studio中的“工具”->“选项”菜单。

答案 10 :(得分:-1)

我遇到了同样的问题,并且Muru分享的解决方案对我有用:

http://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html

只需安装ODAC和

即可