2

I have installed the oracle 19 client to build my project. In my registry the dll path is well defined like this

and i've also add <oracle.dataaccess.client><settings><add name="DllPath" value="D:\app\oracle\product\19.0.0\client_1\bin"/></settings></oracle.dataaccess.client>

but i still have the exception

DllNotFoundException: Unable to load DLL 'OraOps19.dll': The specified procedure could not be found.

How can i see the dll path used or resolve the problem ?

Armadorae
  • 21
  • 1
  • 2
  • 1
    Did you mix 32-bit and 64-bit? Maybe have a look at https://github.com/Wernfried/connection-tester – Wernfried Domscheit Jun 24 '21 at 14:26
  • 1
    Use [Process Monitor](https://learn.microsoft.com/en-us/sysinternals/downloads/procmon) to see which path is searched – Wernfried Domscheit Jun 24 '21 at 14:28
  • @WernfriedDomscheit I don't mix 32-bit and 64-bit but with process monitor my application seems to use dll from oracle client 12 and I don't know why. In my personal computer I've oracle 11, 12 & 19 – Armadorae Jun 24 '21 at 14:41
  • I don't think it is a smart idea to have more than one Oracle client installed (i.e. one each for 32-bit and 64-bit). I cannot imagine any reason to have it. You would have to change your `PATH` variable accordingly for each program you start. See also https://stackoverflow.com/questions/659341/the-provider-is-not-compatible-with-the-version-of-oracle-client#25412992 – Wernfried Domscheit Jun 24 '21 at 14:51
  • why would you even use Full oracle client these days? There are better connectivity options. – T.S. Jun 25 '21 at 03:32
  • Does this answer your question? [Unable to load DLL “OraOps10.dll”](https://stackoverflow.com/questions/8683661/unable-to-load-dll-oraops10-dll) – T.S. Jun 25 '21 at 03:33

1 Answers1

1

In my case, there was a wrong path to oci.dll in the Windows registry.

I managed to catch that only after writing a small console application and analyzing an application running log created by the Process Monitor tool:

Tools - File Summary - ByFolder tree helped to find a record that reads the wrong path value from the Windows registry

I put the following fixes:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]
"OracleOciLibPath"="C:\\PATH_TO_YOUR_ORACLE_CLIENT\\bin"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSDTC\MTxOCI]
"OracleOciLibPath"="C:\\PATH_TO_YOUR_ORACLE_CLIENT\\bin"

It fixed the error.

MirrorBoy
  • 618
  • 7
  • 11