20

Uno de nuestros miembros de equipo de desarrollo tiene un errorBadImageFormatException durante el uso de Oracle Client 64 bit y Visual Studio 2010!

intento de cargar bibliotecas de cliente de Oracle lanzó BadImageFormatException

Parece

Este problema se produce cuando se ejecuta en modo de 64 bits con los componentes del cliente Oracle de 32 bits instalados.

Pero era yo el que configura el sistema - Aquí están las especificaciones:

  • de Windows 7 de 64 bits
  • Visual Studio 2010 Premium
  • cliente de Oracle 11g R2 de 64 bits instalados como en tiempo de ejecución

¿Alguna idea?

+0

¿Ha actualizado a la última ODAC CLENT? http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html – Sathya

+0

¿Tiene algo que ver con que Visual Studio sea de 32 bits? –

+0

quizás - No estoy familiarizado con Visual Studio aunque – Sathya

Respuesta

9

He visto esto un par de veces recientemente al ejecutar Visual Studio en un 64Bit O/S. Un simple workround es instalar el cliente de 32 bits en su máquina de desarrollo de 64 bits.

Saludos, Pete

+0

que lo que hicimos al final! –

+0

Resuelto para mí, también. Gracias –

+3

Sí, pero también necesita asegurarse de que su aplicación esté utilizando un grupo de aplicaciones de 32 bits. Abra el Administrador de IIS y haga clic en "Configuración avanzada" en el grupo y luego "Habilitar aplicaciones de 32 bits = Verdadero". https://help.webcontrolcenter.com/KB/a1114/how-to-enable-32-bit-application-pool-iis-7-dedicatedvps.aspx – styfle

19

lo siento sobre la adición de una segunda respuesta, pero si usted tiene 64 bits y 32 bits clientes instalados en la misma máquina que puede encontrar este problema también.

dos clientes instalados

C:\oracle\product\11.2.0\client32Bit 
C:\oracle\product\11.2.0\client64Bit 

control de la ruta de la variable de entorno. Cuál cliente de Oracle es el primero, se carga antes que el otro.

echo %PATH% 
XXXX;C:\oracle\product\11.2.0\client64Bit\BIN;XXX 

Desde mi cliente de Oracle de 64 bits es el primero en PATH, VS.NET trata de utilizarla para conexiones de Oracle y tiros Malo Excepción Imagen.

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" 

Después de esto, puede conectarse a oráculo. Por supuesto, puede poner al cliente de 32 bits primero en la ruta, pero prefiero poner al cliente de 64 bits antes que a 32 bits para otras aplicaciones.

+0

Esto es lo que me solucionó el problema. Gracias por tu ayuda. –

0

La solución rápida y sencilla para este problema que tiene que seguir los siguientes pasos solamente:

  1. Instalar ODACv11.2021Xcopy_x64, por plazo install.bat archivo a continuación, comprobar "c: \ oracle" como la ruta creada.
  2. copie su carpeta de configuración de red [que contiene la carpeta de administración con el archivo tnsnames.ora] en oráculo de 32 bits a "c: \ oracle".
  3. Agregó la ruta "c: \ oracle" a la variable de entorno PATH.

disfrutar

Best Regards, Eng. Nawaf H. Bin Taleb.

3

He cambiado Compatibilidad habilitada para 32 bits a FALSE en mi grupo de aplicaciones en IIS7. Esto funcionó para mí. Lo encontré fácil Saludos :)

+4

Cambié el mío a TRUE y funcionó jaja. – styfle

0

Obtuve la misma excepción y descubrí que ocurrió cuando actualicé a la versión MVC superior a 2.0., En mi caso MVC 4.0.

La creación de un nuevo proyecto en MVC 2.0 resolvió el problema.

0

Si desea utilizar 64 bits ver mi respuesta aquí:
64 bit Oracle DataAccess configuration

Si no está contento con 32 bits, sólo tiene que instalar la versión de 32 bits de Oracle Data Access Components. Dado que el servidor de desarrollo de Visual Studio es de 32 bits, no tendrá ningún problema.

9

que tenían el mismo error después de actualizar a Windows 7. resolví cambiando el Destino de la plataforma a 86 en el separador Crear de la página Propiedades en Visual Studio

+0

funcionó perfectamente :) –

+1

En mi caso, fue todo lo contrario: cambiar mi plataforma de destino a x64 solucionó el problema. –

0

solución simple: funciona para mí. prueba esto.

Pasé casi 4 horas para encontrar la solución para el problema BadImageFormatException.

Escenario: VS 2012, estaba intentando agregar modelo de entidad a la base de datos Oracle por primera vez. Yo sabía que hay dos pasos para agregar el modelo de base de datos Oracle:

  1. Conectar base de datos Oracle utilizando el servidor de explorar (donde se creará cadena de conexión y que puede ser utilizado mientras que la adición modelo)
  2. Agregar modelo usando connectionstring existente (creado en el paso 1).

Pero me llamó la atención en el paso 1 en sí con la advertencia BadImageFormatException y encontré la solución. Resolución:

  1. Siga las instrucciones dadas en el enlace y completar la instalación del cliente de Oracle http://www.oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html
  2. Una vez completada la instalación con éxito, entonces esto es sencillo paso. agregar modelo al proyecto aquí use la cadena de conexión existente de dropdownlist y proporcione userid/pwd.

entonces usted está preparado para usar el modelo :)

5

El mismo problema que se puede encontrar también en Visual Studio 2013 y cliente de Oracle de 64 bits (11 y 12 versiones). Mi solución es:

a)Proyecto de escritorio. Propiedades del proyecto> Compilar> deshabilitar la casilla de verificación 'Preferir 32 bits'.

b)proyecto de ASP.NET o sitio web. Menú principal> HERRAMIENTAS> Opciones> Proyecto y soluciones> Proyectos web> habilite 'Usar la versión de 64 bits de IIS Express para sitios web y proyectos'.

+0

hola ... gracias ... la respuesta (b) funciona para mí ... odio instalar el oráculo de 32 bits junto con el de 64 bits ... esto es para Visual Studio 2015 – Karthick