Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the minimal setup required to deploy a .NET application with Oracle client 11?

Tags:

oracle

odp.net

People also ask

What is Oracle 11g client used for?

Oracle Instant Client enables development and deployment of applications that connect to Oracle Database, either on-premise or in the Cloud. The Instant Client libraries provide the necessary network connectivity and advanced data features to make full use of Oracle Database.

Is Java needed for Oracle client?

The hard disk requirements for Oracle Database Client components include space required to install Java Runtime Environment (JRE) and Oracle Universal Installer on the partition where the operating system is installed.

How do I start Oracle client on Windows?

To start the installation, go to the Client installation directory and run SETUP. EXE to start Oracle Universal Installer. On the Select Installation Type page, choose Administrator. Click Next.


Josh-

Thank you very much for taking the time to answer. Your instructions helped a whole lot, and are very close to what I have found on my own.

Interestingly enough, I found it can be slimmed a little more.

For those in my situation who

  1. Do not want their users to have to install ODAC or the full-size Oracle Client
  2. Do not care about the re-usability of the particular client installtion
  3. Need a "clickOnce" compatible solution

I found a way to do that.

a. Download the "Oracle Instant Client 11.1.0.6 - Basic Lite". b. unzip to any folder and copy the following files to your Visual Studio project root:

  • oci.dll
  • ociw32.dll
  • orannzsbb11.dll
  • oraocci11.dll
  • oraociicus11.dll
  • msvcr71.dll (not necessary, should be supplied with most Windows versions)

    (the first five are the minimum needed for the Oracle Instant Client, the last is the microsoft common runtime they use.)

c. Download the ODAC 11 XCopy (the current version is 11.1.0.6) and unzip.

  • OraOps11w.dll - in the odp.net20 folder, goes in your project root.

    (this file is what the Oracle.DataAccess.dll talks to and uses to work with the Instant Client files).

d. For compatibility with ClickOnce deployment, select these files in your project and make sure they are "Content" and "Copy Local" in your project. The manifest will then deploy them properly.

Result... the payload added to your project is 30mb, which kinda sucks, but much better than 100+ or 400+, supports western characters, but kicks butt in that

  1. it requires no path,
  2. requires no registry entries,
  3. is isolated in deployment and does not hose other Oracle Client installations,
  4. works will all DBs back through 9.2.

  1. Download the ODAC 11 XCopy deployment.
  2. Extract the zip file and run the following:

    install.bat odp.net20 c:\oracle\11.1\odac myoraclehome true

  3. Copy the files from the 11.1 directory and place them in a subdirectory of your application's executable (e.g. debug\bin\oracle)

  4. Add the following statements to your Main() method. They will change the path such that your application executable will use the oracle client exclusive of any other oracle home's. The environment change is exclusive to your process and has no lasting effects when the application terminates:

    Environment.SetEnvironmentVariable("PATH", Environment.CurrentDirectory + "\\oracle\\11.1\\odac;" + Environment.CurrentDirectory + "\\oracle\\11.1\\odac\\bin;", EnvironmentVariableTarget.Process);

    Environment.SetEnvironmentVariable("ORACLE_HOME", Environment.CurrentDirectory + "\\oracle\\11.1\\odac", EnvironmentVariableTarget.Process);


A while back, this is the thread that got my program working (THANKS!). I now have been told that Oracle doesn't like you picking out 6 dlls and dropping them into your executable folder. So now, every dll that gets installed when running install.bat odp.net2 c:\oracle odac has to placed in your executable folder (eating up space)


Im running with the oracle instant client 11g. The following, and very minimal, list of files is what ive found necessary for deployment:

OCI.dll
Oracle.DataAccess.dll
OraOCIEI11.dll
OraOps11w.dll

Just install the full client and copy those files from the bin folder.