我希望我的应用适用于Oracle客户端可能是10或11的目标计算机。 是否可以使用ODP进行操作?
如果在我的应用程序中我从我的开发机器引用了Oracle.DataAccess.dll(我有ORA client11) - 我的应用程序仅适用于具有客户端11的目标机器...
如果我从客户端10引用ODP - 该应用仅适用于具有ORA客户端10的计算机。
是否可以开发适用于Oracle客户端版本10,11的应用程序(使用ODP)?我要的是ORA客户端版本,而不是DB版本。
谢谢!
答案 0 :(得分:0)
我认为最安全的是建立在两个版本中的较低版本(所以2.102.2.20
或Oracle.DataAccess.dll
的任何一个版本)。
如果安装了更高版本的计算机,您可以在GAC
(全局程序集缓存)中安装策略。此策略文件重定向引用2.102.2.20
的应用程序以使用新版本的ODP.NET
(11.xxx.x.x)。
使用正常的Oracle客户端安装,此策略文件应该已经在您的GAC
中,但如果不是,您应该可以在ORACLE_HOME\odp.net\PublisherPolicy\2.x.
中找到它
您应该可以将这些政策文件拖到GAC
(开始>运行> %systemroot%\assembly
)。
只要正确的策略到位,使用版本10构建的应用程序也应该在安装了Oracle Client 11的计算机上运行。
注意:您也可以自己创建这样的策略文件;请查看this了解更多详情