2

我正在尝试将 SQLite 嵌入到我的便携式 C# .NET 2.0 应用程序中,而不是将 DLL 文件包含在分发文件夹中。但是,要嵌入 SQLite,我不能使用 PHXSoftware 提供的混合模式库。相反,我使用的是他们的“仅限托管”版本。

这在 32 位计算机上运行良好,但是当它在 64 位计算机上运行时,它会引发格式异常。正如我从这里发现的那样:http : //sqlite.phxsoftware.com/forums/p/2564/9939.aspx 在使用托管库之前,我需要先以所需的体系结构格式手动加载非托管 sqlite3.dll。

这就是我的不足之处。我找不到 64 位版本的 SQLite 与 32 位版本一起包含。任何人都可以帮忙吗?我敢说,有没有人有更好的想法?

4

2 回答 2

1

我建议您自己构建源代码。这样做非常简单。特别是考虑到 Sqlite 提供了合并源

以下是我用于 64 位版本构建的编译器预处理器定义:

  • WIN64 NDBUG
  • _视窗
  • _USRDLL
  • NO_TCL
  • _CRT_SECURE_NO_DEPRECATE
  • 线程安全=1
  • TEMP_STORE=1
  • SQLITE_MAX_EXPR_DEPTH=0

以下是我用于 32 位发布版本的编译器预处理器定义:

  • WIN32
  • NDBUG
  • _视窗
  • _USRDLL
  • NO_TCL
  • _CRT_SECURE_NO_DEPRECATE
  • 线程安全=1
  • TEMP_STORE=1
  • SQLITE_MAX_EXPR_DEPTH=0
于 2012-05-23T21:01:12.960 回答
0

System.Data.SQLite fork 具有适用于 .Net 2、3.5 和 4 的 x86/x64 二进制文件。下载地址在此处

更新:

另一种可能的解决方案是将您的应用程序定位到 x86 平台并仅使用 x86 SQLite 库。如果您的应用程序不需要针对 x86 平台的 x64 功能,将大大降低部署的复杂性。

于 2012-05-21T19:57:51.147 回答