我有一个使用Oracle.DataAccess(ODP.NET)的XCOPY可部署.NET应用程序。我们还将Oracle Instant客户端部署在应用程序目录中。一切工作正常,但我担心..Oracle.Dataaccess位于GAC中。我可以控制我使用的版本吗?
从Oracle ODP.NET FAQ:
与ODP.NET 10.1.0.3开始,Oracle安装程序将注册 在全局下发行政策的DLL程序集缓存(GAC) 表示重定向9.2,10.1和10.2使用ODP.NET应用程序的最后一个安装版本 ODP.NET:Policy.9.2.Oracle.DataAccess.dll和 策略10.1.1 .Oracle.DataAccess.dll
这意味着在安装了Oracle ODP.NET的机器上,将使用GAC中的版本,而不是使用我的应用程序部署的版本。而且由于发布者的政策,该版本可能比我用我的应用程序部署的版本更新。 Oracle.DataAccess需要同时与我的应用程序一起部署的Oracle(即时)客户端。这些是本地Win32 DLL,因此我的版本将被使用。
Oracle可能会将Oracle.DataAccess升级到可能与我的应用程序中部署的Oracle Instant Client不兼容的新版本?从而打破了我的未来应用。
这是问题吗?我能避免它吗?如果不在计算机上安装/删除任何内容,我是否可以覆盖Oracle Publishers策略以保证我使用的是我的xcopy在应用程序中部署的Oracle.Dataaccess版本?
对于给定版本的ODP.NET,它支持哪些Oracle客户端版本?新版本的Oracle.DataAccess是否支持旧版本的Oracle(即时)客户端。
甲骨文已经发布了一个完全托管提供商没有这些问题。 http://www.oracle.com/technetwork/topics/dotnet/index-085163.html – Arve 2014-02-25 04:31:46
另外,Oracle安装程序的最新版本现在有一个选项,不要将任何内容放入GAC或机器配置中。 – 2015-06-28 18:51:29