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

LLF picture LLF · Jan 7, 2015 · Viewed 12.9k times · Source

First I have both 11 and 12 oracle client on my machine. But when i try to use 11g version of oracle.dataacess.dll .

I already remove a 12c register on regedit and stop service and machince.config related. but the program was throw "Unable to load oraops12.dll..".

Which path that oracle.dataacess find a config for dll? Why did it still try to load oraops12 not oraops11.

Thank you in advance.

Answer

Aaron Sevivas picture Aaron Sevivas · May 19, 2015

There is a policy file in your GAC that is using the "bindingRedirect" tag

Policy.2.112.Oracle.DataAccess.config

Do a search for the file (I use Agent Ransack) then edit it.

The contents of the file look like this

<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>

For some reason, if you install Oracle 12, then try and uninstall it (even using gacutil.exe /u), the binding redirect is left in.

On my machine, it was in C:\Windows\assembly\GAC_32\Policy.2.112.Oracle.DataAccess\2.121.2.0__89b483f429c47342\Policy.2.112.Oracle.DataAccess.config

It is inaccessible via explorer, use agent ransack to track it down, then right click it and open it in an editor.