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

时间:2012-05-21 19:50:10

标签: c# sqlite managed badimageformatexception

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

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

我不知道的地方。我找不到64位版本的SQLite以及32位版本。有人可以帮忙吗?我敢说,有没有人有更好的想法?

2 个答案:

答案 0 :(得分:1)

我建议您自己构建源代码。这非常直截了当。特别是考虑到Sqlite提供amalgamation source

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

  • WIN64 NDEBUG
  • _WINDOWS
  • _USRDLL
  • NO_TCL
  • _CRT_SECURE_NO_DEPRECATE
  • THREADSAFE = 1
  • TEMP_STORE = 1
  • SQLITE_MAX_EXPR_DEPTH = 0

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

  • WIN32
  • NDEBUG
  • _WINDOWS
  • _USRDLL
  • NO_TCL
  • _CRT_SECURE_NO_DEPRECATE
  • THREADSAFE = 1
  • TEMP_STORE = 1
  • SQLITE_MAX_EXPR_DEPTH = 0

答案 1 :(得分:0)

System.Data.SQLite fork包含.Net 2,3.5和4的x86 / x64二进制文件。下载为here

<强>更新

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