2010-01-12 2 views
34

я сломал код вниз до минимально возможного заявления:Что вызывает System.BadImageFormatException при построении System.Data.SQLite.SQLiteConnection

Dim cn As System.Data.SQLite.SQLiteConnection 

И я получаю следующее сообщение об ошибке при вызове кода из WinForm applicaiton:

System.BadImageFormatException: Может не загрузить файл или сборку 'System.Data.SQLite, Version = 1.0.65.0, Culture = нейтрально, PublicKeyToken = db937bc2d44ff139' или одна из его зависимостей. Была сделана попытка загрузить программу с неправильным форматом . Имя файла: 'System.Data.SQLite, Version = 1.0.65.0, Culture = нейтрально, PublicKeyToken = db937bc2d44ff139'

Но называя тот же кусок кода из теста MS Unit я не получаю ошибку , плюс полный набор кодов работает как ожидалось.

+0

Просмотреть похожие http://stackoverflow.com/questions/11370344/could-not-load-file-or-assembly -a-try-was-made-to-load-a-program-with-a? lq = 1 –

ответ

54

SqlLite содержит неуправляемый код, вы не можете запустить его в 64-разрядной операционной системе, если вы не разворачиваете 64-разрядную версию. Быстрое исправление: Project + Properties, вкладка Build, Platform Target = x86.

+0

Если бы я только задал вопрос два часа назад :-) Это подскажет мне, что MS Test работает в 32 немного. Верный? –

+0

Да, запуск corflags.exe на mstest.exe показывает, что он также был запущен в 32-разрядном режиме. –

3

Убедитесь, что вы используете правильную сборку относительно 32 и 64 бит.

Смежные вопросы