我正在尝试从我在Windows 7 64位上编写的程序访问Oracle数据库。每当它初始化客户端时,我得到一个BadImageFormatException
抱怨我正在尝试在64位环境中使用32位客户端。我试图以任何方式编译程序(任何CPU,32,64位),但它没有解决问题。有什么帮助吗?
答案 0 :(得分:1)
我猜错误信息是正确的。您有一个32位Oracle DLL,您可以在64进程中使用它。 Oracle DLL可能与本机代码进行一些互操作,这可能需要它是特定于处理器的。
有几种方法可以解决这个问题。
选项1:获取64 bit Oracle DLLs.
选项2:确保您的流程为32位。 标记为AnyCPU的.NET exe文件将在64位操作系统上启动64位进程。但是,如果您将EXE文件标记为x86,那么它应该可以工作。对于Web应用程序,您必须在IIS中的某处设置32位标志。
答案 1 :(得分:1)
您需要将项目配置为定位.NET 4 Framework,方法是转到Project-Designer
- > Target Framework
。
然后,您需要删除旧的Oracle dll
,并使用.NET 4 Framework中包含的Oracle dll
的新 64位版本。 / p>