Skip to Main Content

ODP.NET

Announcement

For appeals, questions and feedback, please email oracle-forums_moderators_us@oracle.com

ODAC 19.3 unable to load OraOps19.dll

20160819Aug 20 2021

This is being seen with the 19.3 client but does not manifest with earlier versions (11.x, 12.x, 18.3) configured on the same Windows application servers (2012, 2016, 2019). The servers where the error manifests are single-application usage having no previous Oracle software installations.

The minimal installation involves copying DLLs extracted from the ODAC XCopy client, version 19.3:
File Name File Version
oci.dll 19.3.0.0
Oracle.DataAccess.dll 4.122.19.1
orannzsbb19.dll 19.0.0.0
oraocci19.dll 19.0.0.0
oraociei19.dll 19.3.0.0
oraons.dll 18.1.0.1
OraOps19.dll 2.122.19.1

These files are put into a directory:
C:\oracle\19.3\bin
which is then registered in the Path System variable as the first entry.
Also the TNS_ADMIN System variable is created and set to:
C:\oracle\19.3\network\admin
which contains the ldap.ora file.

This configuration works fine on a couple of Windows 10 PCs but not on some servers where a simple connectivity test application throws this error:
Unhandled Exception: System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. --->
System.DllNotFoundException: Unable to load DLL 'OraOps19.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at Oracle.DataAccess.Client.OpsInit.CheckVersionCompatibility(String version)
at Oracle.DataAccess.Client.OracleInit.Initialize()
at Oracle.DataAccess.Client.OracleConnection..cctor()

The test application is compiled with the proper .NET and Oracle version of Oracle.DataAccess.dll. On a server manifesting the error under 19.3, an earlier version of the test application (compiled referencing the respective 12 or 18 Oracle.DataAccess.dll) works when the Path variable is redirected to the corresponding version's DLLs which reside in another directory. The problem is not the 19.3 test application itself because it does work on some systems.

These efforts did not help:
- Rebooting the system.
- Putting the test application directly in the 'bin' directory with the client DLLs and running it there.
- Using the same files from the Unmanaged driver version 19.10.
- Executing the ODAC 19c Release 1 Xcopy Installation, Version 19.3 July 2019, using install.bat via Administrator Command Prompt, which also creates Registry entries.
- After that installation, attempting to install OraOps19.dll into the GAC using OraProvCfg.exe via Administrator Command Prompt: ERROR: The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)
(The only DLL that OraProvCfg.exe did register was Oracle.DataAccess.dll but that did not solve the issue.)
- Putting the "DllPath" key/value with a <oracle.dataaccess.client> section in the app.config file.

Internet searches reveal similar errors mostly for older versions, but their solutions do not apply or do not work.
Questions:
1. Has something in the Oracle DLLs changed for version 19 that would cause this?
2. Are there any adjustments to this simple Oracle client configuration that could be made in attempt to resolve this?
3. Is a newer ODAC version coming out soon which could be tried?
Thanks for any help or direction.

This post has been answered by Justin Liu on Feb 26 2024
Jump to Answer
Comments
Post Details
Added on Aug 20 2021
14 comments
11,593 views