Przykro mi z powodu dodania drugiej odpowiedzi, ale jeśli masz klientów 64-bitowych i 32-bitowych zainstalowanych na tej samej maszynie, możesz również napotkać ten problem.
Zainstalowano dwóch klientów
C:\oracle\product\11.2.0\client32Bit
C:\oracle\product\11.2.0\client64Bit
Kontroluj zmienną środowiskową ścieżki. Który klient Oracle jest pierwszy, jest ładowany przed innym.
echo %PATH%
XXXX;C:\oracle\product\11.2.0\client64Bit\BIN;XXX
Ponieważ mój 64-bitowy klient Oracle jest pierwszy w PATH, VS.NET próbuje użyć go do połączeń Oracle i zgłasza wyjątek nieprawidłowego obrazu.
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"
Następnie możesz podłączyć wyrocznię. Oczywiście możesz umieścić klienta 32-bitowego jako pierwszego w ścieżce, ale wolę umieścić klienta 64-bitowego przed 32-bitowym dla innych aplikacji.