I’ve finished some DLLs that are part of a project that will be installed on client machines in our company. These DLLs are compiled at .NET 4.0 and are using Entity Framework 4 to connect an Oracle DB and retrieve data during normal processing. The machine that I developed and tested the DLLs on has ODAC 11.2.0.3.20 installed on it and I used ODP.NET and Oracle Developer Tools for Visual Studio to get all of the work done.
Now, what I want to know is this: What is the minimum Oracle “stuff” that I need to install on a client’s machine to get this working properly and where would I find that “stuff”? I’m not asking about how to handle all of the .NET dependencies and other sorts of whatnot, I’m very familiar with what I need to do to get everything else working. I just need help with the Oracle stuff.
The managed Oracle.DataAccess.dll assembly that you reference in your .net project is a very small part of the oracle client which is a pile of unmanaged binaries. Thru a variety of methods (registry, oracle_home environment variable, dllpath config parameter), the managed dll searches for the client install to use. The smallest client footprint that I’m aware of is the xcopy installation which includes the “instant client”:
http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html
You can find a guide on installing it here:
http://www.brothersincode.com/post/Oracle-ODPnet-xcopy-deployment-for-aspnet.aspx
(installing it for .net client app will not differ much from installing it for an asp.net server.
In the future, consider a physical middle teir in the form of wcf services. While you’d loose some direct quering capability, you’d eliminate the headache of installing the oracle client on every machine. RIA services might be an option on top of that: http://msdn.microsoft.com/en-us/library/ee707344(VS.91).aspx