20

我们的一个开发团队成员得到了一个错误BadImageFormatException在使用Oracle客户端64位和Visual Studio 2010时!

尝试加载Oracle客户端库扔BadImageFormatException

看来

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

但它是我是谁配置的系统 - 这里的规格:

  • 的Windows 7 64位
  • Visual Studio 2010中的高级
  • Oracle客户端11克R2 64位安装为运行

有什么想法?

+0

你有没有升级到最新克伦特ODAC? http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html – Sathya 2011-05-03 16:07:51

+0

它与Visual Studio是32Bit有什么关系? – 2011-05-05 16:14:34

+0

也许 - 我不熟悉Visual Studio,虽然 – Sathya 2011-05-05 16:30:49

回答

9

最近在64Bit操作系统上运行Visual Studio时,我已经看过几次了。一个简单的工作就是在64位开发机器上安装32位客户端。

问候,皮特

+0

,我们到底做了什么! – 2011-05-18 06:37:24

+0

也解决了我。谢谢 – 2012-06-27 15:34:39

+3

是的,但您也需要确保您的应用程序使用的是32位应用程序池。打开IIS管理器并单击池上的“高级设置”,然后“启用32位应用程序= True”。 https://help.webcontrolcenter.com/KB/a1114/how-to-enable-32-bit-application-pool-iis-7-dedicatedvps.aspx – styfle 2013-07-02 16:20:40

19

我即将添加第二个答案抱歉,但如果你有64位,而安装在同一台机器32个客户端可能也遇到这样的问题。

两个客户端安装

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

控制PATH环境变量。哪个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。当然,你可以先把32Bit客户端放在路径上,但我更愿意把32位之前的64位客户端放在其他应用程序中。

+0

这是为我解决了这个问题。谢谢你的帮助。 – 2012-11-27 16:37:52

0

对于这个问题,你必须只按照以下步骤快速简单的解决方案:

  1. install.bat文件安装ODACv11.2021Xcopy_x64,通过运行,然后选中“C:\ ORACLE”为生成的路径。
  2. 将oracle 32bit中的网络配置文件夹[包含具有tnsnames.ora文件的admin文件夹]复制到“c:\ oracle”。
  3. 向PATH环境变量添加了“c:\ oracle”路径。

享受

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

3

我改变了32位启用支持错误在我的应用程序池在IIS7中。这对我有效。我发现它很容易。 干杯:)

+4

我将我的地雷改为TRUE,它工作哈哈。 – styfle 2013-07-02 16:21:03

0

我得到了同样的异常,我发现它发生在我升级到2.0以上的MVC版本时,在我的情况MVC 4.0。

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

0

如果您想使用64位看到我的答案在这里:
64 bit Oracle DataAccess configuration

如果你的内容与32位,只需要安装Oracle数据访问组件的32位版本。由于Visual Studio的开发服务器是32位,所以不会有任何问题。

9

我有同样的错误升级到Windows 7后,我通过改变目标平台,以86中的属性页的Build选项卡在Visual Studio

+0

工作完美:) – 2014-09-05 08:19:15

+1

就我而言,情况正好相反:将我的目标平台更改为x64可以解决问题。 – 2014-09-23 15:10:24

0

简单的解决方案解决了它:对我的作品。尝试这个。

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

场景: VS 2012,我试图添加实体模型到Oracle数据库的第一次。我知道有两个步骤添加模型为Oracle数据库:

  1. 连接Oracle数据库使用服务器探索
  2. 添加模型使用现有的ConnectionString(其中连接字符串将被创建并可以同时加入模型中) (在步骤1中创建)。

但我在步骤1本身遇到BadImageFormatException警告,我找到了解决方案。 分辨率:

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

,那么你就可以使用模型:)

5

同样的问题,你可能还面临着在Visual Studio 2013年和64位Oracle客户端(11个12版本)。我的解决方案是:

a)桌面项目。项目属性>生成>禁用“首选32位”复选框。

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

+0

嗨..谢谢你..答案(b)为我工作..我讨厌安装与64位的32位oracle ...这是为Visual Studio 2015 – Karthick 2017-03-13 14:39:07

相关问题