在同一服务器中有两个ODP.NET(ODAC)版本

viz*_*yno 5 odp.net oracleclient

几个月前,我的一位同事在使用XCOPY的服务器上安装了ODAC 11.106.21,然后他开发了许多使用该客户端而没有问题的应用程序(在测试和生产Windows服务器中).

上周,我根据ODAC 11.1.07.20开发了一个应用程序.当我让他在不同的文件夹中使用XCOPY安装这些新的ODAC版本,然后将我的应用程序包含在测试服务器中时,他回答我应该使用ODAC 11.106.21,因为他的应用程序可能会遇到麻烦.

所以我想知道:

1)如果在一台服务器中确实可以有两个不同的ODAC版本.

2)如果答案是肯定的,我怎样才能向我的同事坚定地确保他的申请不会有麻烦?

3)如果答案是肯定的,是否有必要在服务器中进行某种配置?

谢谢!!

Igb*_*man 9

您可以在同一台计算机上拥有多个版本的ODAC,但有几个方面需要注意,每个应用程序将使用哪个版本.这实际上适用于所有组件.

  • 在Visual Studio中,如果在Oracle.DataAccess.dll上设置Specific Version = True,那么该应用程序将不会使用任何其他版本,并且必须能够找到它构建的版本.
  • 是否将DLL与您的应用程序一起部署或期望它位于特定位置或GAC中.
  • 有一个特定的搜索顺序,用于查找相关的DLL,并且它非常复杂,所以请阅读此MSDN主题.

简短的回答是,有两种简单的方法可以确保您的应用程序使用您想要的Oracle.DataAccess.dll的确切版本(这适用于大多数其他情况都是默认的情况):

  1. 将特定版本设置为True;
  2. 使用您的应用程序部署DLL并将其驻留在应用程序目录中,或者确保DLL位于GAC中.

在您的特定情况下,您的同事可能有一个有效的顾虑:如果他当前安装的应用程序从GAC获取Oracle.DataAccess.dll,并且他没有将特定版本设置为True,那么当您安装新的ODAC时,他的应用程序将开始使用它(我假设新的Oracle.DataAccess.dll也将安装在GAC中),