如何部署可在多个Oracle客户端上运行的VB.NET应用程序?

时间:2017-01-19 17:28:08

标签: vb.net oracle odp.net

在Visual Studio 2015中工作,我有一个VB应用程序,我需要部署到多个客户端。只要我使用完全相同的Oracle.DataAccess.dll版本部署到具有相同版本的计算机,该应用程序就可以正常运行。但我需要部署的机器具有不同版本的Oracle客户端。有没有办法让应用程序适用于不同版本的Oracle客户端?

1 个答案:

答案 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不同,您的结果可能与您的开发环境不匹配。