【问题标题】:BadImageFormatException坏图像格式异常
【发布时间】:2011-07-03 00:30:49
【问题描述】:

我在Win 7 Professional 64位系统上安装了VS 2008,数据库是Oracle 11g r2安装在同一台机器上。

在数据源配置向导中 --> 新建连接 数据源:Oracle 数据库(Oracle 客户端) 当我在输入服务名称、用户名和密码后单击测试连接时,我收到以下错误:

尝试加载 Oracle 客户端库引发了 BadImageFormatException。 在安装了 32 位 Oracle 客户端组件的 64 位模式下运行时会出现此问题。

-- 我没有安装 oracle 客户端,因为在这种情况下不需要,我在笔记本电脑上安装了相同的设置 Win 7 32bit Oracle 11g r2 32bit,一切正常。

如果你们有解决此问题的方法,请告诉我。

【问题讨论】:

    标签: badimageformatexception


    【解决方案1】:

    我无法从您的问题中看出您对此了解多少。由于 18 天没有人提供答案,我将投入 0.02 美元的价值。您在 64 位应用程序下运行,因此它想要加载 64 位 .DLL。我对Oracle一无所知,但我猜客户端.dll是在非托管环境中编写的,不能支持托管应用程序所做的“任何CPU”概念。你有几个选择。 1. 在您的 64 位笔记本电脑上加载 64 位版本的 Oracle 客户端 .DLL(如果存在)。 2. 不要使用向导的测试连接功能。您可以针对您正在为 32 位机器构建的应用程序,当您运行应用程序时,您将不会遇到此问题(see this blog post 了解有关定位的一些详细信息)

    【讨论】:

      【解决方案2】:

      VS 2008 是一个 x86 应用程序,但是当您尝试设置新的连接数据源时,您使用的是 x64 驱动程序。

      您可以使用 procmon.exe 之类的工具来证明这一点。如果这样做,您可能会注意到在启动测试连接过程后,它会尝试加载一些 x64 驱动程序,因此会出现 BadImageFormatException。

      解决方法是安装 Visual Studio 所需的 x86 驱动程序。

      【讨论】:

        【解决方案3】:

        只需在您的项目构建属性中设置 PlatformTarget 即可。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-11-07
          • 1970-01-01
          • 2020-02-02
          • 1970-01-01
          • 2014-07-01
          • 1970-01-01
          • 2015-01-18
          相关资源
          最近更新 更多