1

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

在 Data Source Configuration Wizard --> New Connection Data Source: Oracle Database (Oracle Client) 输入服务名称、用户名和密码后单击测试连接时,出现以下错误:

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

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

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

4

3 回答 3

1

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

于 2011-07-21T19:19:35.693 回答
0

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

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

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

于 2012-12-04T11:04:34.073 回答
0

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

于 2013-03-09T15:05:16.247 回答