我在Win 7 Professional 64位系统上安装了VS 2008,数据库是在同一台机器上安装的Oracle 11g r2。
在数据源配置向导中 - >新连接 数据源:Oracle数据库(Oracle客户端) 在输入服务名称,用户名和密码后单击“测试连接”时,出现以下错误:
尝试加载Oracle客户端库会引发BadImageFormatException。 在安装了32位Oracle客户端组件的64位模式下运行时会发生此问题。
- 我没有安装oracle客户端,因为在这种情况下没有必要,我在我的笔记本电脑Win 7 32bit Oracle 11g r2 32bit上有相同的设置,一切正常。
如果您有解决此问题的方法,请告诉我们。
答案 0 :(得分:1)
我无法从你的问题中看出你对此有多了解。由于没有人提供18天的答案,我会投入我的$ .02价值。您正在64位应用程序下运行,因此它想要加载64位.DLL。我对Oracle一无所知,但我猜客户端.dll是在非托管环境中编写的,不能支持托管应用程序所做的“任何CPU”概念。你有几个选择。 1.在64位笔记本电脑上加载64位版本的Oracele客户端.DLL(如果存在)。 2.不要使用向导的测试连接功能。您可以定位为32位计算机构建的应用程序,当您运行应用程序时,您将不会遇到此问题(see this blog post了解有关定位的一些详细信息)
答案 1 :(得分:0)
VS 2008是一个x86应用程序,但是当您尝试设置新的连接数据源时,您使用的是x64驱动程序。
你可以证明使用像procmon.exe这样的工具。如果这样做,您可能会注意到在启动测试连接过程后,它将尝试加载一些x64驱动程序,因此BadImageFormatException。
解决方案是安装Visual Studio所需的x86驱动程序。
答案 2 :(得分:0)
只需在项目构建属性中设置PlatformTarget即可。