Is it possible to create a completely self-contained installer that deploys all the Oracle files along with the application (i.e. the user doesn't need to install instant client, mess around with configuring path environment variables, etc.)? It seems from http://alderprogs.blogspot.com/2009/04/deploying-odpnet-with-oracle-instant.html and http://stackoverflow.com/q/70602/173225 that it should be possible.
What if as part of the installer, I need to test a connection string entered by the user? That seems to be the sticking point for me. Even after installing the instant client (from the x64 xcopy zip file using install.bat), the installer is not able to connect to the database.
And, the application is 64 bit only (we need the 64 bit Crystal Reports runtime), meaning I've got the 64 bit Oracle instant client installed. I suspect that might be the problem since the msiexec installer process is 32 bit.
If it's possible to use it instead, take a look at the new managed client beta. That's a single .net assembly you include in the project, no Oracle installation required. It makes this type of scenario vastly easier (in fact we fixed this problem in a project just two days ago by using it).
My understanding (and experience so far) is that I still need some other Oracle DLLs. My problem is that I need the 64 bit bits available at runtime and the 32 bit bits available during install.
Also, it seems like I need to have a config file or .ora files, which is problematic during install. Is it not possible to specify the connection settings in code only?
Is it really possible to include just the managed client asssembly, nothing else, and have things work? It's possible my previous issues were due to Oracle connectivity being missing during the install, but I've tried so many permutations that I don't remember exactly what went wrong yesterday.
Edited by: colin_young on Nov 28, 2012 5:33 PM
That's what the managed client is specifically for, yes. One assembly included in the project (using Copy Local = true), and you've got Oracle connectvity. No installations and no extra DLLs. You can put the connection info into your config file with the application, so no .ora files are needed either.
It's by far the simplest way to solve this problem.
But, is the .config file required? I need to make the Oracle call during install, so there is no config file (and I can't figure out if it it possible to have one for a custom actions project).
Don't know, I've never tried it without one.
I also don't know if it's going to work during install, unless your installer is a .net application itself. You could refactor whatever you're doing during install to do in a post-install application startup instead, which would get around that.
Thanks. It would be nice to get some official feedback or guidance on installing. The existing documentation (on all Oracle client distributions, not just this beta managed driver) could charitably be called confusing.
I tested the install using the EZ Connect syntax and it doesn't work (the custom action in the installer is .Net code and has a reference to the managed provider).