使用古老版本.Net Framwork4.0版本来开发相关SQLite操作功能:遇到一个错误:System.Data.SQLite 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

产生这个错误的原因是System.Data.SQLite内加载sqllite引擎的dll不正常,说到底就是加载SQLite.Interop.dll的版本不对。比如你的程序是64位系统而你使用的是32位的dll。只要把bin下的这个dll换成正确的版本就可以解决了。
还有更好的解决办法吗?答案是有的见这里:https://lebang2020.cn/details/220719ll35gr1t.html

 

下载各版本的SQLite.Interop.dll见这里:https://lebang2020.cn/details/220719gn1tk2ij.html

原因说明

异常 0x8007000B"试图加载格式不正确的程序",是因为 System.Data.SQLite 加载的 SQLite.Interop.dll 位数与当前进程不匹配(如 64 位程序加载了 32 位互操作库)。

解决办法

  • 确保 bin 下的 SQLite.Interop.dll 与进程位数一致(x64 / x86 分目录)。
  • 项目平台目标为 AnyCPU 时,关闭"首选 32 位"以避免混用。
  • 使用包含 x86 与 x64 子目录的完整 NuGet 包。

相关阅读

参考资料