托管 C# 应用程序需要 64 位 SQLite DLL



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

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

这就是我的不足之处。我找不到 64 位版本的 SQLite 与 32 位版本一起包含。谁能帮忙?我敢说,有人有更好的主意吗?

我建议你自己构建源代码。这很简单。特别是考虑到 Sqlite 提供合并源。

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

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

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

  • WIN32
  • NDEBUG
  • _窗户
  • _USRDLL
  • NO_TCL
  • _CRT_SECURE_NO_DEPRECATE
  • 线程安全=1
  • TEMP_STORE=1
  • SQLITE_MAX_EXPR_DEPTH=0

System.Data.SQLite 分支有 .Net 2、3.5 和 4 的 x86/x64 二进制文件。下载在这里。

更新:

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

相关内容

  • 没有找到相关文章

最新更新