Thursday, July 30, 2015

Work around for a System.IO.FileNotFoundException: Oracle.DataAccess

I wrote a simple program that uses ODP.Net to copy data from one server to another.

I have the ODP.NET version installed on my machine with the Oracle.DataAcess Specific version set to false. The server is a Windows 2003 32 bit so the output is x86.

The .EXE works fine on my machine, then when I tried it on the server itself I got.

Exception non gérée : System.IO.FileNotFoundException: Impossible de charger le fichier ou l'assembly 'Oracle.DataAccess, Version=, Culture=neutral, PublicKeyToken=89b483f429c47342' ou une de ses dépendances. Le fichier spécifié est introuvable.

I needed to have this .EXE work on the server so in order to make it work; I copied the version of the ODP.Net from the server to my machine. I then changed the reference in the project to this one and set the Specific Version to True. I tried with it set to false and I still got an error.

The .EXE worked on the server.

This seems like a work around, there was probably something wrong with the Oracle installation on the server but I couldn't change the server, so this did the trick. 

I would have thought having specific version set to false would mean it would work no matter what version of the ODP.Net was installed. 

If I ever find out the problem I'll post an update.