Sinto muito por adicionar uma segunda resposta, mas se você tiver clientes de 64 bits e 32 bits instalados na mesma máquina, também poderá encontrar esse problema.
Dois clientes instalados
C:\oracle\product\11.2.0\client32Bit
C:\oracle\product\11.2.0\client64Bit
Controle sua variável de ambiente de caminho. Qual cliente Oracle é o primeiro, ele é carregado antes do outro.
echo %PATH%
XXXX;C:\oracle\product\11.2.0\client64Bit\BIN;XXX
Como meu cliente Oracle de 64 bits é o primeiro em PATH, o VS.NET tenta usá-lo para conexões Oracle e lança uma exceção de imagem inválida.
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"
Depois disso, você pode conectar o oracle. Claro que você pode colocar o cliente de 32 bits primeiro no caminho, mas eu prefiro colocar o cliente de 64 bits antes de 32 bits para outros aplicativos.