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

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

这在32位计算机上运行良好,但是当它在64位计算机上运行时,会抛出格式exception。 正如我从这里发现的那样: 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
  • THREADSAFE = 1
  • TEMP_STORE = 1
  • SQLITE_MAX_EXPR_DEPTH = 0

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

  • WIN32
  • NDEBUG
  • _视窗
  • _USRDLL
  • NO_TCL
  • _CRT_SECURE_NO_DEPRECATE
  • THREADSAFE = 1
  • TEMP_STORE = 1
  • SQLITE_MAX_EXPR_DEPTH = 0

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

更新:

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