2

I'm using the oracle.dataaccess.dll when having to query an Oracle DB. But it doesn't work if the user doesn't have an Oracle client installed on his machine. Is it possible to somehow include the Oracle client inside a dll so the user won't have to explicitly install the client?

2
  • Well, sometimes you can embed it or merge it, but usually you can just ship the library dll with your project - does that not suffice? Commented Apr 10, 2013 at 11:20
  • @MarcGravell: Unfortunatelly, it doesn't suffice with Oracle. Commented Apr 10, 2013 at 11:22

4 Answers 4

5

The managed ODP.net client is exactly what you want. Now that there's a 12c version out, it's a simple single assembly that you can deploy with your application and not have to worry about Oracle installations.

There's also a nuget package that you can use if you don't want to install on your system. That is very painless to get up and running. Here's some links to those:

Sign up to request clarification or add additional context in comments.

1 Comment

@Zenadix Should work now, Oracle moves around their download pages so I went to the main one instead.
3

You can ship the Oracle Instant Client with your application.

This is a complete Oracle client but it doesn't require installation, it can be used directly.

However, you need to be aware of the following:

  1. The instant client is over 120 MB in size.
  2. You need different versions of the instant client for x86 and x64, bringing the size to about 250 MB.

The advantage of using the instant client is that you don't have to worry about the installed version of the Oracle client. Even if the computer already has an incompatible version installed, your application will work, because it comes with the correct version.

2 Comments

can anyone guide me how to "ship" with my application ? its a asp.net application with C# back end
as I developed my application having a dependency on Oracle.DataAccess.dll, will it require any code change ?
0

If you're able to pay, I've had fair success with DevArt's DotConnect for Oracle as an alternative to the client provided by Oracle.

It provides a completely managed way of connecting to and querying Oracle, along with Entity framework & nHibernate support and emulation for GUIDs, booleans and a few other datatypes where Oracle lacks support (GUID is raw(16) in Oracle).

All you have to do is ship a single managed DLL with your project.

5 Comments

I think you mean System.Data.OracleClient.
I don't I'm afraid. Oracle.DataAccess.Client is in .Net4. I hadn't heard of System.Data.OracleClient, is it packaged with .Net?
System.Data.OracleClient is the one provided by Microsoft in the framework, and is the depreciated one. Oracle.DataAccess is the one provided by Oracle for .net 2 and 4, and is not depreciated. (Oracle's client also has EF support now, and a beta of a managed client that's a single dll with no installation.)
Tridus is right. Oracle.DataAccess.Client is not part of the .NET framework. It is provided by Oracle and is only a managed wrapper around the unmanaged Oracle DLLs.
I've removed the offending data :) Thanks for the clarification
0

I finally got it to work by making the Oracle connection string in my app.config and copying all the client DLL's as in this picture:

DLL's I COPIED

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.