I have written a C# application that connects to an Oracle 10g database. Using Oracle Data Access Component 11.2 "ODAC", it works perfectly on my machine.
And now I want to deploy the application and install it in another "clean machine" that has the .NET Framework only! And I don't want to install the whole ODAC component to the user!
How could I do that? I have tried to include all the necessary DLL files to my bin folder, like:
But still it didn't work. What should I do to solve this problem?
You don't need to install any Oracle client separately. I installed the following in the same directory as the .exe:
Oracle.DataAccess.dll
oci.dll
OraOps11w.dll
oraociei11.dll
msvcr71.dll
Make sure your project references the same Oracle.DataAccess.dll that you are delivering. This worked on a fresh pc which had never had oracle clients installed.
I avoided using TNSNAMES.ora by specifiying a connection string like this
connectionstring = Data Source="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=))" + "(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = )))"
If you are using TNSNAMES.ora just cut and paste the connection details into a single line string.
see What is the minimum client footprint required to connect C# to an Oracle database?
for more information.
For information on how to obtain the above dlls, see this tutorial: http://begeeben.wordpress.com/2012/08/01/accessing-oracle-database-without-installing-oracle-client/