System.Data.SQLite (SDS) 显然是在 .Net 应用程序中使用 SQLite 的最流行方式。
我想知道如果
- SDS 需要另外提供 SQLite DLL,或者如果 SDS 包含 SQLite 源代码,并且
- SDS可以静态编译成VB.Net应用程序吗?它只能作为DLL发布吗?
谢谢你。
System.Data.SQLite (SDS) 显然是在 .Net 应用程序中使用 SQLite 的最流行方式。
我想知道如果
谢谢你。
实际上,将 System.Data.SQLite.dll 编译为不需要 C++ 运行时非常容易。例如,如果您下载源代码并遵循构建过程,您将在以下路径中找到 System.Data.SQLite.dll 的静态链接(无需 C/C++ 运行时)副本:
<your-src-root>\bin\<2008 or 2010>\<Win32 or x64>\ReleaseStatic
例如,如果您的源代码位于其中,C:\Work\sqlite-netFx-source-1.0.80.0
则 Win32 和 .NET 3.5 (VS 2008) 的静态链接二进制文件将位于:
C:\Work\sqlite-netFx-source-1.0.80.0\bin\2008\Win32\ReleaseStatic
此外,由于 System.Data.SQLite.dll 是一个混合模式程序集,由使用link.exe链接在一起的托管 .netmodule 和本机 .obj 文件组成,因此也可以将您的应用程序构建为 .netmodule 并将其链接在一起与 SQLite 成一个单一的混合模式程序集。
生成的程序集仍然是 Win32 或 x64,但是由于几乎所有 x64 机器在运行 Win32 代码时都没有问题,您可以只选择 Win32,只要:
为了扩展我的评论,SDS 是非托管代码的 .net 包装器,因此您需要将发布代码与 DLL 副本一起发布。
正如史蒂夫所提到的,DLL 有 32 位和 64 位版本,而且我在挫折之后发现,你必须在目标机器上安装相应的 Visual c++ 运行时,所以如果你将 32 位版本部署到 64 位机器上,它将需要安装 32 位 c++ 运行环境。
我目前正在研究但没有时间测试的另一种方法是 csharpe-sqlite,一个纯 .net 实现:
http://code.google.com/p/csharp-sqlite/
顾名思义,用 c# 编码,但当然可以在任何 .net 语言中使用,包括 vb.net