2 つ目の回答を追加して申し訳ありませんが、同じマシンに 64 ビットと 32 ビットのクライアントがインストールされている場合、この問題も発生する可能性があります。
2 つのクライアントがインストールされています
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 ビット クライアントを配置することもできますが、他のアプリケーションでは 32 ビットの前に 64 ビット クライアントを配置することを好みます。