Winforms 如何确定“文件”的哪个版本;Oracle.DataAccess.dll“;包括
在将.NET 3.5 Windows窗体部署到不同环境时,我们遇到了许多无效的提供程序问题 它对某些人有效,对其他人无效 有人能帮我一个忙吗?我如何确定使用哪个版本的“Oralce.DataAccess.dll”,即9或10或11或9.1.*或10.1.*或11.*或12等Winforms 如何确定“文件”的哪个版本;Oracle.DataAccess.dll“;包括,winforms,oracle,c#-3.0,odp.net,Winforms,Oracle,C# 3.0,Odp.net,在将.NET 3.5 Windows窗体部署到不同环境时,我们遇到了许多无效的提供程序问题 它对某些人有效,对其他人无效 有人能帮我一个忙吗?我如何确定使用哪个版本的“Oralce.DataAccess.dll”,即9或10或11或9.1.*或10.1.*或11.*或12等 它是否取决于安装应用程序的服务器?或 它是否依赖于后端oracle数据库 事实上,我相信没有正确的答案。 这完全取决于应用程序运行时使用的处理器体系结构(so位)、您使用的OCI客户端版本等 我发现将Oracle交互封装在一
事实上,我相信没有正确的答案。 这完全取决于应用程序运行时使用的处理器体系结构(so位)、您使用的OCI客户端版本等 我发现将Oracle交互封装在一个类中最有用,使用反射查找可用版本 关于版本号:ODP.net程序集的版本必须与OCI客户端安装的版本匹配。将12.*OCI客户端与10.*ODP.net程序集混合使用是个坏主意
可能对您也有帮助。首先,请澄清: 您有一个Oracle数据库服务器(您称之为“后端Oracle数据库”)和一个Oracle客户端(无论它是否安装在应用程序服务器上,从Oracle的角度来看,它都是客户端) ODP.NET(Oracle Data Provider for.NET,即Oracle.DataAccess.dll和其他一些文件)的版本由Oracle客户端定义。您几乎可以使用每个ODP.NET版本连接到每个Oracle数据库版本—或多或少 错误消息“提供程序与Oracle客户端版本不兼容”也可能意味着根本没有安装ODP.NET提供程序。在这种情况下,错误消息确实有点误导。所以,首先检查是否安装了ODP.NET,它不包括在标准Oracle Instant Client安装中 当我检查从Oracle提供的所有可用下载时,您拥有ODP.NET版本
- 9.什么
- 10.什么
- 1.x
- 2.0
- 4.0
- 如果您的Oracle客户端为11.2或更高版本,则必须包含ODP.NET 2.0或4.0版李>
- 如果您的Oracle客户端介于10.2和11.1之间,则可以使用eiter ODP.NET版本1.x或2.0
- 如果您的Oracle客户端的版本早于10.2,我不知道它是如何工作的——反正它已经过时了
这里你可以得到更多的信息:
< P>如果你的Oracle服务器是10.2或更高版本,你可以简单地考虑使用Oracle 12提供的托管ODPNET版本。 显然这是一个依赖项,小于10MB。与依赖Oracle(instant)客户端的ODP.NET版本相比,将应用程序部署到不同的系统应该更容易。它还应该避免您必须关心任何已安装的Oracle客户端 但是,他们确实提到它在“最新版本的.NET Framework 4.5.1”上工作,因此据我所知,您需要将应用程序升级到4.5.1,但可能只有在您希望使用某些功能(如实体框架支持)的情况下才需要这样做我赞成使用。这样就不需要知道我将要讨论的细节。这里唯一的问题是,我认为您可能需要升级到.NET4.0 TLDR版本:
- 请改用12c 100%托管提供程序
- 简而言之,不要将提供程序(Oracle.DataAccess.dll)与非托管客户端的不同版本混合使用(至少不要向后)
- 考虑重新设计以包括一个服务层,该层首先消除了在客户端上使用Oracle提供程序的需要
<configuration>
<oracle.dataaccess.client>
<add key="DllPath" value="c:\oracle\product\1.1.0-xcopy-dep\BIN"/>
</oracle.dataaccess.client>
</configuration>