【发布时间】:2016-06-01 15:50:07
【问题描述】:
我最近担任了应用程序开发人员,没有太多经验,我无法确定问题的根源。我已经搜索了论坛并且无法对我的具体问题得出结论性的答案,因此我提出了一个问题。如果我是这个网站的新手,如果冒犯任何人或违反任何规则,我提前道歉。
我有几个需要使用 oracle.dataaccess.dll 的应用程序。我已按照雇主的要求安装了 oracle 客户端 x32。当我尝试运行任何需要 oracle.dataaccess.dll 文件的应用程序时,我遇到了各种错误。
大多数应用程序使用 dll 的 4.xx.xx.xx 版本,它不会出现在我的 oracle 客户端中(我假设它是因为我安装了 32 位)。当我尝试使用 32 位版本时,出现各种错误:
- 提供程序与 Oracle 客户端版本不兼容
或
- 无法加载文件或程序集。 'Oracle.DataAccess.dll' 或其依赖项之一。尝试加载格式不正确的程序。
或
- 可能未安装提供程序。
如果我尝试使用生产服务器上使用的 oracle.dataaccess.dll,我会遇到同样的错误。
什么是“提供程序”,如何确定我安装了哪些?
我应该将这些 dll 中的任何一个存储在我的 GAC 中吗?
我完全不知道我需要从这里去哪里,因为我已经尝试了我所知道的一切。我什至卸载了我的 Oracle 客户端并重新安装,但无济于事。非常感谢任何可以为我提供好的教程或如何使用 oracle.dataaccess 的信息。
再次对任何麻烦表示歉意。
【问题讨论】:
-
我遇到了同样的问题,具体取决于这是 Windows 还是 Web 应用程序。您需要在项目级别更改属性以构建应用程序,因为
x86不要使用 @987654323 @它不会工作..通常它应该与设置为 AnyCpu 的构建一起工作。但是 Oracle 的 64 位客户端存在重大问题,因此我们使用了稳定的 32 位客户端,它的工作原理就像一个魅力,不要将这些存储在 GAC 中。将 using 语句添加到 .cs 文件的标题以及手动添加引用到项目 -
将其添加到项目后,转到 dll 并更改
CopyLocal=false;l property to CopyLocal=true