2010-01-12 19 views
34

He roto el código hasta el más mínimo posible declaración:System.BadImageFormatException cuando se construye System.Data.SQLite.SQLiteConnection

Dim cn As System.Data.SQLite.SQLiteConnection 

y consigo el error siguiente cuando se llama al código de un WinForm applicaiton:

System.BadImageFormatException: Podría no cargar el archivo o ensamblado 'System.Data.SQLite, versión = 1.0.65.0, Culture = neutral, PublicKeyToken = db937bc2d44ff139' o una de sus dependencias. Se realizó un intento para cargar un programa con un formato incorrecto . Nombre del archivo: 'System.Data.SQLite, versión = 1.0.65.0, Culture = neutral, PublicKeyToken = db937bc2d44ff139'

llamando embargo, la misma pieza de código de MS Prueba de la unidad no consigo el error , además el conjunto completo de códigos funciona como se esperaba.

+0

ver similares http://stackoverflow.com/questions/11370344/could-not-load-file-or-assembly -un-intento-fue-hecho-para-cargar-un-programa-con-un? lq = 1 –

Respuesta

54

SqlLite contiene código no administrado, no puede ejecutarlo en un sistema operativo de 64 bits a menos que implemente la versión de 64 bits. Solución rápida: Project + Properties, pestaña Build, Platform Target = x86.

+0

Si solo hubiera hecho la pregunta hace dos horas :-) Esto me sugeriría que MS Test se ejecuta en 32 poco. ¿Correcto? –

+0

Sí, ejecutar corflags.exe en mstest.exe muestra que también se vio forzado a ejecutarse en modo de 32 bits. –

3

Asegúrese de utilizar el ensamblaje correcto con respecto a 32 y 64 bits.

Cuestiones relacionadas