【问题标题】:System.Data.OracleClient on Windows 7 64Windows 7 64 上的 System.Data.OracleClient
【发布时间】:2011-01-25 19:51:35
【问题描述】:
我正在尝试从我在 Windows 7 64 位上编写的程序访问 Oracle 数据库。每当它初始化客户端时,我都会收到BadImageFormatException 抱怨我正在尝试在 64 位环境中使用 32 位客户端。我尝试以任何方式编译程序(任何 CPU,32、64 位),但它没有解决问题。有什么帮助吗?
【问题讨论】:
标签:
visual-studio
oracle
windows-7
【解决方案1】:
您需要通过转到Project-Designer -> Target Framework 将您的项目配置为面向 .NET 4 Framework。
那么您需要删除旧的Oracle dll,并使用包含在.NET 4 Framework 中的Oracle dll 的新64-Bit-Version。
【解决方案2】:
我猜错误信息是正确的。您有一个从 64 进程使用的 32 位 Oracle DLL。 Oracle DLL 可能会与本机代码进行一些互操作,这可能要求它是特定于处理器的。
有几种方法可以解决这个问题。
选项 1:获取64 bit Oracle DLLs.
选项 2:确保您的进程是 32 位的。
标记为 AnyCPU 的 .NET exe 文件将在 64 位操作系统上启动 64 位进程。但是,如果您将 EXE 文件标记为 x86,那么它应该可以工作。对于 Web 应用程序,您必须在 IIS 中的某处设置一个 32 位标志。