Oracle.DataAccess 卸载后仍尝试访问 oraops12.dll

Oracle.DataAccess still try to access oraops12.dll after uninstall

首先,我的机器上同时安装了 11 和 12 oracle 客户端。但是当我尝试使用 oracle.dataacess.dll 的 11g 版本时。

我已经删除了 regedit 上的一个 12c 寄存器并停止服务和 machince.config 相关。 但是程序被抛出 "Unable to load oraops12.dll..".

oracle.dataacess在哪个路径找到dll的配置? 为什么它仍然尝试加载 oraops12 而不是 oraops11。

提前致谢。

您的 GAC 中有一个政策文件正在使用 "bindingRedirect" 标签

政策.2.112.Oracle.DataAccess.config

搜索文件(我使用 Agent Ransack)然后编辑它。

文件内容如下所示

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/>
            <bindingRedirect oldVersion="2.112.2.0-2.112.9999.9999" newVersion="2.121.1.0"/>
        </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

出于某种原因,如果您安装了 Oracle 12,然后尝试卸载它(即使使用 gacutil.exe /u),绑定重定向仍然存在。

在我的机器上,它位于 C:\Windows\assembly\GAC_32\Policy.2.112.Oracle.DataAccess.121.2.0__89b483f429c47342\Policy.2.112.Oracle.DataAccess.config

无法通过资源管理器访问,使用代理搜索找到它,然后右键单击它并在编辑器中打开它。

我刚遇到这个问题。确保并删除 c:\windows\assembly 和 c:\windows\Microsoft.net\assembly 中以 2.12 开头的所有策略文件夹和 oracle.dataaccess 文件夹。 2.11x 表示 oracle 11.x,2.12x 表示 Oracle 12.x.

我在 Windows Server 2012 中遇到了同样的问题...

我只安装 C++ Redistributable Package 2010

就解决了所有问题