在Visual Studio 2015中工作,我有一个VB应用程序,我需要部署到多个客户端。只要我使用完全相同的Oracle.DataAccess.dll版本部署到具有相同版本的计算机,该应用程序就可以正常运行。但我需要部署的机器具有不同版本的Oracle客户端。有没有办法让应用程序适用于不同版本的Oracle客户端?
答案 0 :(得分:0)
答案是使用无客户端的Oracle连接。请参阅此article。或者无客户nuget package Oracle.ManagedDataAccess
?
oracle的问题是特定客户端不能与具有不同版本的Oracle.Dataaccess.dll
一起使用。有时候版本可能会有点不同,比如客户端1.2.0.206,它不适用于1.2.0.212。
您也可以尝试不分发dll,因为我相信Oracle客户端会安装odp.net文件夹,其中有与该客户端匹配的DLL并且它已在GAC中注册。但问题可能是你用于dev的dll版本更高。您可以尝试调整app.config
来设置此dll的版本范围。 Read about redirecting assembly version
但毕竟,最好是将您的应用程序部署为具有无客户端Oracle连接的原子单元。即使您成功使用版本重定向,一个dll中的功能也可能与另一个dll不同,您的结果可能与您的开发环境不匹配。