我想让我的应用程序在Oracle客户端可能是10或11的目标机器上工作。可以用ODP实现吗?
如果在我的应用程序中引用来自我的开发机器的Oracle.DataAccess.dll (我有ORA client11) -我的应用程序只能在带有client 11的目标机器上工作……
如果我从我的客户端10引用ODP -该应用程序只适用于安装了ORA客户端10的机器。
是否可以开发同时适用于Oracle客户端版本10和11的应用程序(使用ODP)?我要求的是ORA客户端版本,而不是DB版本。
谢谢!
发布于 2012-03-11 07:02:24
我认为最安全的是构建在两个版本中较低的版本上(所以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
https://stackoverflow.com/questions/2192724
复制相似问题