views:

164

answers:

2

Obviously I'd like to not have to install an Oracle client (other than simply a DLL), because that would prohibit my ClickOnce goal. I tried System.Data.OracleClient, but it threw an exception, "System.Data.OracleClient requires Oracle client software version 8.1.7 or greater."

Update:
It seems that System.Data.OracleClient is not the way to go. So I downloaded the xcopy-able version of the Oracle ODP.NET provider. I then ran "install.bat odp.net20 c:\oracle odac" to install only ODP.NET. Then I added a reference in my project to C:\oracle\odp.net\bin\2.x\Oracle.DataAccess.dll. This allowed me to hit the Oracle DB. But when I take all my files to a clean machine (including the oracle DLL), I get an exception: "The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception." So it seems that it is still depending on some other files. But I don't know what files. And how does it know where the files are? A registry entry? Not looking good for ClickOnce.

Update:
It works as long as I include the files mentioned by mcauthorn: oci.dll, oracle.dataaccess.dll, oraociei11.dll, & oraops11w.dll. Unfortunately, oraociei11.dll is very large -- 114MB.

A: 

I would say to go get the ODP.Net Dlls here. You will have to grab the XCopy version, and then add the necessary DLLs to your project and you then should be good to go. The System.Data.OracleClient has been discontinued and is not recommended by Microsoft.

mcauthorn
mcauthorn
A: 

You can use third-party ADO.NET provider. Try this one. It does not require Oracle Client and runs on Mono.

We pay enough for Oracle. Paying for something else to connect to Oracle won't make sense to the people who write the checks.
Fantius
Hey man - they already paid enough for Oracle, so you won't get YOUR check at the end of the month!