需要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,则可以大大降低部署的复杂性。