SQLite 是用 C 编写的。对于 Windows,它以编译后的 32 位 (x86) .dll 的形式分发。这不能直接从 .NET 使用,因为它是本机代码,而 .NET 程序通常不喜欢与本机代码交互。它可以用一种叫做 COM Interop 的东西来完成,但在我手中这并不容易或漂亮。
在您的问题中,您引用了 System.Data.SQLite 的下载页面。这是一个与普通的旧 SQLite 略有不同的实现。它采用 C SQLite 并用 .NET 代码包装它 - 允许 .NET 程序使用 C 本机代码(万岁,其他人做了这项工作)。
当您将本机代码(C SQLite)和 .NET 代码(包装函数)放在一个程序集中时,这称为混合模式程序集,最初将所有内容放在一个文件中是有意义的。如果您正在开发或仅在您自己的机器上使用 SQLite,那么使用混合模式程序集就可以了。
但是,如果您想将应用程序分发给客户,则使用 64 位 Windows 时情况发生了变化。这是因为混合模式程序集只能在编译它们的体系结构上运行(一个善意的谎言,但对于这个答案来说是正确的)。从 System.Data.SQLite 版本 1.0.80.0 开始,强烈建议您分发: 1.)所有 .NET .dll System.Data.SQLite.dll,可以在 32 位或 64 位架构上运行)和 2 .) 32 位 .dll x86\SQLite.Interop.dll 和 3. 64 位 .dll x64\SQLite.Interop.dll
所有 .NET 包装器(第 1 项)确定它在哪个架构上运行,并相应地选择 32 位或 64 位 .dll。
所有这些都在您引用的 System.Data.SQLite 下载页面上进行了描述,但我发现它令人困惑,所以我提供了我的摘要。
您在问题中注意到的版本差异也是由于 SQLite 和 System.Data.SQLite 之间的差异。