基于ODP.net开发的程序,往往要依赖于Oracle客户端,实际上Oracle有一个免安装的InstantClient,发布的时候带上InstantClient即可。
原先以为一定要带上InstantClient,后来经过试验发现实际上只需在发布的时候带上几个动态库即可:Oracle.DataAccess.dll、OraOps11w.dll、oci.dll、orannzsbb11.dll、oraociei11.dll,注意版本一定要对应上。同时添加注册表信息(值根据实际情况定,不能为NA):
[HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE]
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
将TNS配置文件放在同一目录下,这样即使系统没有安装oracle客户端或者客户端版本不一致,也可以正常运行了。
最近测试又发现在裸机上还需要带上几个动态才行:
msvcm80.dll、msvcp80.dll、msvcr80.dll、Microsoft.VC80.CRT.manifest