64位Windows 7旗舰版下安装了32位的Oracle,在C#的Form Window程序中执行数据库打开语句的时候出现报错:Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed. MSDN给出的BadImageFormatException信息是:当动态链接库 (DLL) 或可执行程序的文件映像无效时引发的异常。意思是说在64位下面用了32位的OracleClient,也就是我现在的这种情况。 由于System.Data.OracleClient所指向的是PATH环境变量下的oci.dll,所以我们只要让程序能够找到64位的oci.dll就可以了。方法如下: 1. 下载instantclient-basic-win32-11.2.0.1.0.zip,并解压,如C:\instantclient_11_2 注意:32位Oracle在64位Windows 7的注册表中路径是HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE,不是HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,所以在C#程序中最好不用oracle的tnsnames.ora,而是写在连接字符串里。如: string host = "127.0.0.1"; |
|