Прошу прощения за добавление второго ответа, но если на одном компьютере установлены 64-битные и 32-битные клиенты, вы также можете столкнуться с этой проблемой.
Установлено два клиента
C:\oracle\product\11.2.0\client32Bit
C:\oracle\product\11.2.0\client64Bit
Контролируйте свой путь Переменная среды. Какой клиент Oracle первый, он загружается раньше другого.
echo %PATH%
XXXX;C:\oracle\product\11.2.0\client64Bit\BIN;XXX
Поскольку мой 64-битный клиент Oracle является первым в PATH, VS.NET пытается использовать его для соединений Oracle и выдает исключение Bad Image Exception.
set PATH=C:\oracle\product\11.2.0\client32Bit\BIN;%PATH%
REM Visual Studio 2008
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"
REM Visual Studio 2010
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe"
После этого вы можете подключить оракула. Конечно, вы можете сначала поставить 32-битный клиент в путь, но я предпочитаю ставить 64-битный клиент перед 32-битным для других приложений.