我们的应用程序是使用oracle 11g Oracle.DataAccess.dll构建和打包的,并且在同一个框中我们安装了12.2 Oracle Client(没有安装其他oracle客户端)。 Oracle服务器运行在12.2版本上。
现在,当我们安装我们的产品时,它正试图通过客户端与Oracle Server进行通信。但是我们产品的Oracle.DataAccess.dll(基本上是11g版本)无法与12.2 Oracle客户端通信。
我们有没有办法成功沟通?我们不想用我们的安装程序打包12.2 dll并立即释放它。请建议是否有任何可以使其兼容的调整。
谢谢, 阿瑞丹姆。
答案 0 :(得分:0)
不,Oracle客户端版本和Oracle.DataAccess.dll
版本必须匹配。即使次要版本不同,您也可能遇到问题,例如:客户端版本12.1.0.2.x
与Oracle.DataAccess.dll
版本12.1.0.1.x
。
但是,如果ODP.NET(即Oracle.DataAccess.dll
)与Oracle Client一起安装,那应该没问题。 GAC应包括
Policy.4.112.Oracle.DataAccess.config ->
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/>
<bindingRedirect oldVersion="4.112.0.0-4.112.9999.9999" newVersion="4.122.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
您的应用程序是否使用ODP.NET版本11.2构建并不重要,该策略应自动将其重定向到已安装的版本12.2。
否则请转到其中一个页面
并下载匹配的 XCopy 版本。从ZIP中提取正确的Oracle.DataAccess.dll
文件,并将其与您的应用程序一起提供。