开发环境:
OS:⑥4位Win7
开发工具:VS2010
数据库:Oracle11gR1(⑥4位服澲务器端,32位客户端)
VS2010报错信息:数据连接不成功,请检澲查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以⑥4位模式运行,将出现此问题。
参考了这篇文章,但是没解决问题,不知道什么原因。不过也做个收zàng,兴许以后能用上。
http://www.cnВLogs.com/Creator/archive/2010/11/26/1885657.html
研究了一下午,没搞定,最后sǐ马当活马医,竟然试成功了,当时的感觉真是“山穷水尽疑无路,柳暗huā明又一村”。解决方fǎ很简单:继续用原来安装好的32位的InstantClient,环境变量的Path中,在最前面添加“C:\Oracle\product\instantclient_11_2;”(这是我本机32位InstantClient的目录),确定之后,重启,搞定。注意,环境变量一定要放在最前面,至少是oracle相关的path中,这条要放在最前面,否则可能先检测到⑥4位的目录,程序继续报错。
学而不思则罔,本菜鸟大概分析一下原因:vs2010的调试工具WebDev.WebServer20.exe是32位的,需要执行对应的32位oracle客户端的程序,最关键的是oci.dll。而原path环境变量中的Oracle服澲务器端目录,里面是⑥4位的程序,包hán6*4位的oci.dll,此时vs调用6*4位的动态库,执行报错。我们只要让vs先检测到32位的oci.dll即可,通澲过修改环境变量path来实现。事后比较了一下,本机安装的Oracle服澲务器端和客户端,里面的两个oci.dll文件大小不一样,也验证了我的猜测。
本文详细记录了解决使用VS2010开发环境配置32位Oracle客户端导致的BadImageFormatException问题的过程。通过在环境变量Path中调整Oracle客户端目录的位置,确保VS2010能够优先加载正确的32位oci.dll,从而解决数据连接不成功的错误。文中还解释了问题的原因及解决方法,并提供了相关链接作为参考。
1万+

被折叠的 条评论
为什么被折叠?



