ODP.NET:提供程序与Oracle客户端版本不兼容

时间:2013-06-04 14:39:21

标签: c# oracle odp.net

首先,我想这样说我读了其他问题,但没有人帮助过我。

我收到此错误的服务器是Windows 2003 SP2 + .net framework 4.0 + Oracle i9客户端

我已经下载了最新的ODP.NET ODAC1120320Xcopy_32bit.zip,将这些dll复制出来。

  • OCI.DLL
  • OCIW32.DLL
  • Oracle.DataAccess.dll
  • orannzsbb11.dll
  • oraocci11.dll
  • oraociei11.dll
  • OraOps11w.dll

我创建了一个只连接到oracle的小应用程序。 link

当我运行此应用程序时,我得到的提供程序与Oracle客户端错误的版本不兼容。

在下载页面上也写了:下面的每个32位ODAC客户端下载都支持与Oracle数据库版本9.2,10.1,10.2和11.1以及11.2的连接。

所以我想我的9i数据库应该没问题。

我不确定是否应该使用一些较旧的ODP.NET版本。 SO上的一个答案就是使用支持.NET 2.0的版本11.1.0.6.20,但我的应用程序是针对.NET 4.0编写的。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我没有意识到在没有某种安装的情况下运行oracle客户端的任何受支持的方法(xcopy版本包含一个用于安装的批处理文件,因此“xcopy”有点用词不当。

也就是说,如果你要做一些不受支持的事情,你可能会选择最终会得到支持的东西 - 100%托管的提供商(意味着没有额外的非托管dll可以复制)目前处于测试阶段: http://www.oracle.com/technetwork/database/windows/downloads/odpmbeta-1696432.html

即使只是学习经历,我也会看到一些东西到底,所以我想知道你是否想看看你目前的成果。 oracle documentation确实表明应用程序目录实际上是非托管dll搜索顺序中的第一个。我的猜测是需要额外的dll(你使用的是比链接文章更新的版本)。我会使用像Process Monitor这样的工具看看它从你的应用程序目录外部加载哪些特定的dll,看看你是否可以从新的ODAC中找到要复制的等价物。