用SQLite-WinRT Wrapper构建问题

jer*_*rry 8 sqlite windows-runtime winrt-xaml windows-phone-8.1

在添加SQLite-WinRT数据库包装器后,我无法让我的应用程序为ARM目标构建.我可以用一个简单的测试应用程序重现这一点,如下所示:

(这是在Visual Studio 2013中完成的.)

  1. 创建一个空的Windows 8.1通用应用程序(WinRT)
  2. 使用工具/扩展和更新下载SQLite for Windows Phone 8.1SQLite for Windows Runtime(Windows 8.1).将它们添加到相应项目的参考中.
  3. 使用NuGet,将SQLite-WinRT包添加到每个项目.
  4. 构建x86(本地机器或手机模拟器) - >没问题.
  5. Build for ARM(电话设备) - >如下所示的构建错误(独立于调试或发布版本).

正在构建"ARM"的项目的处理器体系结构与实现文件"C:\ Users\jr\Documents\Visual Studio 2015\Projects\sqlite-test\packages"的处理器体系结构"x86"之间存在不匹配\ Sqlite-Winrt.3.8.7.1\lib\wpa81\SQLiteWinRT.dll"for"C:\ Users\jr\Documents\Visual Studio 2015\Projects\sqlite-test\packages\Sqlite-Winrt.3.8.7.1\lib\wpa81\SQLiteWinRT.winmd".这种不匹配可能会导致运行时故障.请考虑通过Configuration Manager更改项目的目标处理器体系结构,以便在项目和实现文件之间调整处理器体系结构,或者选择具有实现文件的winmd文件,该文件具有与您的目标处理器体系结构相匹配的处理器体系结构项目.

我在这里发布了一个小测试项目(Windows Phone 8.1空项目,添加了SQLite,通过NuGet添加了SQLite-WinRT).

小智 1

解决 NuGet 包问题的一种解决方法是将 sqlite-winrt 源添加到手机或通用应用程序中。

  1. 在“工具”->“扩展和更新”中安装适用于 Windows Phone 8.1 的 SQLite(以及通用的 Windows 运行时 (Windows 8.1))( 如果尚未完成)
  2. 添加对各个项目的引用
  3. 下载sqlite-winrt 包装器的源代码
  4. 将 SQLiteWinRTPhone81(RT)(以及 SQLiteWinRT81,如果需要)文件夹复制到您的解决方案
  5. 将项目添加到 Visual Studio 中的解决方案(右键单击解决方案 ->添加 -> 现有项目
  6. 添加对各个项目的引用
  7. 编辑 sqlite-winrt 项目的引用以指向正确版本的 SQLite(右键单击项目 ->属性 -> Common Porperties -> 引用):添加对项目中当前 SQLite 版本的引用并删除旧参考
  8. 构建您的解决方案

项目属性