首先,我想这样说我读了其他问题,但没有人帮助过我。
我收到此错误的服务器是Windows 2003 SP2 + .net framework 4.0 + Oracle i9客户端
我已经下载了最新的ODP.NET ODAC1120320Xcopy_32bit.zip,将这些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编写的。
我该怎么办?
答案 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中找到要复制的等价物。