我需要在启用SQLITE_ENABLE_FTS3_PARENTHESIS的情况下构建System.Data.SQLite,以获得"增强的查询语法"(http://www.sqlite.org/fts3.html#section_3_1)
我在这里下载了源代码:
我已经尝试遵循构建指南:
我使用的是 2010 版本,因为我在 .net 4.0 中需要它。我已经打开了解决方案并重建了它。我需要先卸载测试项目,因为它们失败了。
我在SQLite.Interop.2010.props 'SQLITE_COMMON_DEFINES'标签中添加了以下内容:
SQLITE_ENABLE_FTS3_PARENTHESIS=1;SQLITE_ENABLE_FTS4=1;
为了确保它被定义,我在sqlite3.c中更改了它(完全不需要):
//#ifdef SQLITE_ENABLE_FTS3
"ENABLE_FTS3",
//#endif
//#ifdef SQLITE_ENABLE_FTS3_PARENTHESIS
"ENABLE_FTS3_PARENTHESIS",
//#endif
//#ifdef SQLITE_ENABLE_FTS4
"ENABLE_FTS4",
//#endif
我用发布配置重建它,它成功了。但是当我查看文件夹时:
sqlite-netFx-source-1.0.89.0\bin\2010\Release\bin
我没有找到SQLite.Interop.dll。
如何构建它并获取SQLite.Interop.dll?
嗯 - 我发现了问题。我需要使用 ReleaseNativeOnly config 进行构建,以获取 SQLite.Interop.dll。win32/x86 文件放置在 sqlite-netFx-source-1.0.89.0\bin\2010\Win32\ReleaseNativeOnly 中。
若要获取 Interop 项目的 64 位版本更改平台,方法是选择解决方案上的属性,并将平台更改为 x64 - 重新生成。该文件放置在 sqlite-netFx-source-1.0.89.0\bin\2010\x64\ReleaseNativeOnly 中。
我将它们复制到 x86 和 x64 文件夹中的项目文件夹中,它可以工作。