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.
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.