电脑软件配置:WIN10(64位)、 Oracle11.2.0(64位)、PLSQLDeveloper(64位),VS2019
用VS2019使用System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089的OracleConnection类连接Oracle时报错误,错误内容:尝试加载 Oracle 客户端库时引发 BadImageFormatException,如果在安装32位Oracle 客户端组件的情况下64位模式运行,将出现此问题
问题分析:
使用的是一些老代码,.netframework版本比较低,好像是2.0左右,报错后升级到3.5,使用plsql客户端直接连接数据库,没问题,使用navicat测试连接也没问题。
tnsnames.ora配置文件也无异常
百度一番之后,前辈们说将目标平台修改至x64可连接数据库成功,修改为至x64后依旧报错:
尝试加载 Oracle 客户端库时引发 BadImageFormatException,如果在安装32位Oracle 客户端组件的情况下64位模式运行,将出现此问题。
后尝试修改为x86也无果
后复盘了一下,怀疑是System.Data.OracleClient版本的问题,在网上搜到的dll版本都不支持win7以后的版本。
本程序是前后端两个项目文件,后端连接数据库的famework升级为3.5,后因为其他问题将前端项目升级到4.0,重新运行,数据库连接成功,不再报错。
后端目标框架.net framework 3.5
前端目标框架.net framework 4.0
总结:
解决此问题的两个重要步骤:
1.服务端项目目标平台修改至x64
2.前端目标框架famework升级为4.0
至于深层次的原因本人没想明白,但是多次遇到此问题,每次都被拦住,故做此纪录