flysun027

有思想的博客

导航

sqlite bundle 的含义,和 sqlite.dll, SQLite.Interop.dll, System.Data.SQLite.dll 三者之间的关系。

 

bundle 表示不需要配合 SQLite.Interop.dll,而 非Bundle 则必须需要 SQLite.Interop.dll 放到输出目录。

 

1. 使用 bundle 版本只需要引用 System.Data.SQLite.dll 就可以正常使用 sqlite 的数据库文件了。

2. 使用 非bundle 版本则需要和项目编译目标相一致 x86 或 x64 版本的 SQLite.Interop.dll 才能正常操作

 

后记:

1. 按我的记忆 SQLite.Interop.dll 是 sqlite.dll 的函数的 c# 直接导出库,并且包含了 c 编译的 sqlite.dll 模块,通常文件体积较大。

2. 也可以手动编译出不包含 sqlite.dll 模块的单独的函数导出dll。这时 SQLite.Interop.dll 的文件体积会非常小。需要 sqlite.dll 配合才能正常工作。

3. 所以 c# 程序可以直接引用带 sqlite.dll 模块的 SQLite.Interop.dll。也可以引用不带 sqlite.dll 模块的 SQLite.Interop.dll,再外挂一个 sqlite.dll。如果需要使用 ado.net 的话就需要引用 System.Data.SQLite.dll。

 

记录一下,时间一长就容易忘。