I have a "little" problem that i can't solve :
I had a simple vb console application initially developped (with Visual studio 2008) for a 32bits server and an oracle 10g DB.
(and it uses the DataAccess.dll version 22.214.171.124).
Today, I have to switch to another server : windiows 7 64bits with oracle 11g (but no visual studio).
On this new server, the Instant client (x64) 11.2 is installed but there is no DataAccess.dll in the GAC (normal?) and my program "could
not find DataAccess.dll".
I tried to put my DataAccess.dll (version 126.96.36.199) in the bin directory on the new server, specifying "copy local" = true in visual studio but it doesn't found the dll. And "copy local" = false doesn't work better...
So I would to know :
- which DataAccess.dll version should I use and where could I download it ?
- is it better to work with or without "copy local" / .dll in the bin directory ?
Sounds like the application is running in 32 bit mode, and so it can't use the 64 bit Oracle client. If you put a 32 bit Oracle client on the machine it might start working. Alternately, recompile the application for AnyCPU. You might run into issues referencing Oracle 10 while using 11 though, I found some code didn't like that situation (fixed by changing the reference to the Oracle 11 client and recompiling).
You should always have Copy Local off Oracle.DataAccess.dll unless you have a reason not to. This case isn't a reason, as without the appropriate Oracle client installed on the computer the DLL doesn't work anyway.
Another alternative solution is to wait until the new managed client comes out (soon apparently) and use that. That's just a DLL included in the project (with Copy Local on) and no Oracle client install required. It should work perfectly in this situation.