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.
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.
I just had this issue. Make sure and remove all of the policy folders and oracle.dataaccess folders that start with 2.12 in both c:\windows\assembly and c:\windows\Microsoft.net\assembly. 2.11x means oracle 11.x, and 2.12x means Oracle 12.x.
I had the same problem in Windows Server 2012...
I solved all thing only intalling the C++ Redistributable Package 2010
来源:https://stackoverflow.com/questions/27823221/oracle-dataaccess-still-try-to-access-oraops12-dll-after-uninstall