Oracle-尝试加载 Oracle 客户端库时引发 BadImageFormatException

2022年05月05日 12:04 · 阅读(906) ·

开发环境

名称 版本
操作系统 Windows 10 X64
Oracle win64_11gR2_database
PLSQL Developer 11.0.4.1788(64 bit)01.179332 - Unlimited user license
Visual Studio 2012/11.0.50727.1 RTMREL
Instant Client v11.2.0.4.0 (64 bit)

尝试加载 Oracle 客户端库时引发 BadImageFormatException

问题描述

运行项目报错

  1. 尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。
  2. System.Data.OracleClient
  3. System.Data.OracleClient.OCI.DetermineClientVersion()
  4. System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName)

问题解决

修改目标平台为 Any CPU

但是这样会引发另外一个错误

  1. OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用。

OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用

问题描述

上面一个问题解决后,运行出现了下面的错误

  1. OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用

问题解决

1.下载 64 位的 Oracle dll 文件

下载方式参考:https://blog.csdn.net/qq_36872323/article/details/109385699

进入 Oracle 官网:https://www.oracle.com/database/technologies/instant-client/downloads.html

选择:Instant Client for Microsoft Windows (x64)

选择:instantclient-basic-windows.x64-21.3.0.0.0.zip

2.解压 instantclient-basic-windows.x64-21.3.0.0.0.zip 到文件夹 D:\Program Files\instantclient-basic-windows.x64-21.3.0.0.0\instantclient_21_3\

3.配置环境变量 PATH

路径 D:\Program Files\instantclient-basic-windows.x64-21.3.0.0.0\instantclient_21_3\

放到环境变量 PATH 的第一个位置