Съжалявам, че добавям втори отговор, но ако имате 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 връзки и хвърля изключение за лошо изображение.
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"
След това можете да свържете oracle. Разбира се, можете да поставите 32-битов клиент първи в пътя, но аз предпочитам да поставя 64-битов клиент пред 32-битов за други приложения.