2010-01-12 18 views
34

Ho rotto il codice fino al più piccolo dichiarazione possibile:Quali sono le cause System.BadImageFormatException quando si costruisce System.Data.SQLite.SQLiteConnection

Dim cn As System.Data.SQLite.SQLiteConnection 

ed ottengo l'errore seguente quando si chiama il codice da una WinForm applicaiton:

System.BadImageFormatException: Potrebbe non caricare il file o assembly 'System.Data.SQLite, Version = 1.0.65.0, Culture = neutral, PublicKeyToken = db937bc2d44ff139' o una delle sue dipendenze. Un tentativo è stato effettuato per caricare un programma con un formato errato . Nome file: 'System.Data.SQLite, Version = 1.0.65.0, Culture = neutral, PublicKeyToken = db937bc2d44ff139'

Eppure chiamando lo stesso pezzo di codice da MS Unità di prova non ottengo l'errore , più il set completo di codice funziona come previsto.

+0

Vedi simili http://stackoverflow.com/questions/11370344/could-not-load-file-or-assembly -un-tentativo-era-fatto-per-caricare-un-programma-con-un? lq = 1 –

risposta

54

SqlLite contiene codice non gestito, non è possibile eseguirlo su un sistema operativo a 64 bit se non si distribuisce la versione a 64 bit. Correzione rapida: Progetto + Proprietà, scheda Crea, Piattaforma Target = x86.

+0

Se solo avessi fatto la domanda due ore fa :-) Questo mi suggerirebbe che MS Test viene eseguito in 32 po. Corretta? –

+0

Sì, l'esecuzione di corflags.exe su mstest.exe mostra che è stato anche forzato l'esecuzione in modalità a 32 bit. –

3

Assicurarsi di utilizzare il corretto montaggio rispetto a 32 e 64 bit.

Problemi correlati