Oracle.DataAccess.Client Dependencies
Solution 1
I managed to make it work.
- Download the good version of the ODAC that will target your project.
-
For a 32bit project you need to download the ODAC12..._x32.zip (ODAC121021Xcopy_32bit.zip).
-
For the 64bit project you need to download the ODAC12..._x64.zip
-
Unzip it in an empty folder depending on the version you want (32bit vs 64bit).
-
Locate in the
instantclient_12_1
folder all the dlls by searching *.dll in the windows search bar. You need to grab:
oci.dll
ociw32.dll
orannzsbb12.dll
oraociei12.dll
oraons.dll
- Locate in the
odp.net4
orodp.net20
folder depending on your .NET version this two dlls:
OraOps12.dll
Oracle.DataAccess.dll
-
Copy the those 32bit dlls or 64bit dlls and put them directly in the Output path of your project. For example in
C:\...\vsProjects\BulkInsert\BulkInsert\bin\Debug
. -
Browse Oracle.DataAccess.dll in your project by pointing on the Output path.
UPD: recent versions of the ODP.NET provider (downloaded from here) have "19" suffix instead of "12" in their filenames:
oci.dll
ociw32.dll
orannzsbb19.dll
oraociei19.dll
oraons.dll
OraOps19.dll
Oracle.DataAccess.dll
Solution 2
I experienced similar problem; install oracle data access components (odac ODTwithODAC122010.zip) for solution.
billybob
Updated on July 15, 2022Comments
-
billybob almost 2 years
First of all, I want to use the
Oracle.DataAccess.dll
to useOracleBulkCopy
.I want to know all the dlls that I need to be able to read from a database and then perform a bulkcopy in Oracle. Currently, we are using only one dll to perform all the reads from databases, we are using
Oracle.ManagedDataAccess.Client
. But I can't use it to perform a bulkCopy.I don't want to install ODP.NET for the users, I want to include the dll directly in the program. So I want to know the minimum required dlls to be able to use the
Oracle.DataAccess.dll
in 32bit and in 64bit.I know that there are some old post about this, but it's quiet old and the listed dlls are out of date. I can't event find some of them.
I installed the ODP.net for ODAC12 and I retreived all the listed dlls in this post. I also tried with with this post. The listed dlls are pointing out the version 11.
I made a dummy project that opens a connection, reads a table and bulk it in another table. I copied the listed dlls from the posts in the root of the project and I included
Oracle.DataAccess.dll
in the project.When I run my program in 64 bit I get the following error:
Could not load file or assembly 'Oracle.DataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342'
When I run it in 32 bit, I get this error:
Unable to load DLL 'OraOps12.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)"
The dlls that I included are:
- oci.dll
- ociw32.dll
- Oracle.DataAccess.dll
- orannzsbb12.dll
- oraocci12.dll
- oraociei12.dll
- OraOps12.dll
-
Wernfried Domscheit over 8 yearsI think it would be better to copy all files from folder
instantclient_12_1
(which is equal to install the Oracle Instance Client). I may work you your environment but on slightly different condition it may fail. -
jbouaziz about 6 yearsCan you add a link to that said file?
-
engntsn about 6 yearslink you can select version on page
-
Matthew over 4 yearsWatch you don't copy DLLs from the wrong version of bitness of Oracle. I did and got this error until I got all the DLLs from the same version of Oracle Instant Client: stackoverflow.com/questions/38589549/…