构造System.Data.SQLite.SQLiteConnection时引发System.BadImageFormatException的原因是什么?

38

我将代码拆分成最小的语句:

Dim cn As System.Data.SQLite.SQLiteConnection

当我从一个WinForm应用程序中调用代码时,会出现以下错误:

System.BadImageFormatException: 无法加载文件或程序集'System.Data.SQLite, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139'或其依赖项之一。尝试加载具有错误格式的程序。 文件名:'System.Data.SQLite,Version=1.0.65.0,Culture=neutral,PublicKeyToken=db937bc2d44ff139'

但是,当我从MS Unit Test中调用相同的代码时,我没有得到这个错误,并且完整的代码集按预期工作。


请参考以下类似问题的解决方案:https://dev59.com/kGgu5IYBdhLWcg3wYGC3?lq=1 - Michael Freidgeim
3个回答

62

SQLite包含非托管代码,除非您部署64位版本,否则无法在64位操作系统上运行。 快速解决方案:项目+属性,生成选项卡,平台目标=x86。


如果我两个小时前就问了这个问题,那就好了 :-) 这表明 MS Test 是以32位运行的。对吗? - Tim Murphy
是的,在 mstest.exe 上运行 corflags.exe 显示它也被强制以 32 位模式运行。 - Hans Passant

4

请确保在32位和64位方面使用正确的汇编。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接