SQLite WinRT 包装器在 Windows phone 8.1 项目中的处理器架构之间提供了不匹配

Posted

技术标签:

【中文标题】SQLite WinRT 包装器在 Windows phone 8.1 项目中的处理器架构之间提供了不匹配【英文标题】:SQLite WinRT wrapper gives mismatch between the processor architecture in Windows phone 8.1 project 【发布时间】:2016-06-23 06:09:14 【问题描述】:

我有一个适用于 Windows Phone 8.1 的 WinJS 项目。我在 Windows 运行时组件中添加了SQLite-WinRT wrapper。但是,它在 ARM 配置中给出了错误,但在 x86 配置中没有给出任何错误。我需要在真实设备中运行我的项目,因此在这种情况下必须需要 ARM 配置。请告诉我我做错了什么。提前致谢。

显示 ARM 配置错误的屏幕截图

x86 配置没有错误的屏幕截图

错误: Severity Code Description Project File Line Suppression State Error There was a mismatch between the processor architecture of the project being built "ARM" and the processor architecture, "x86", of the implementation file "C:\Users\Test\Desktop\AMTEK\Smart_WindowsPhone\packages\Sqlite-Winrt.3.8.7.1\lib\wpa81\SQLiteWinRT.dll" for "C:\Users\Test\Desktop\AMTEK\Smart_WindowsPhone\packages\Sqlite-Winrt.3.8.7.1\lib\wpa81\SQLiteWinRT.winmd". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and implementation file, or choose a winmd file with an implementation file that has a processor architecture which matches the targeted processor architecture of your project. SmartflowRuntimes

【问题讨论】:

【参考方案1】:

对于 Windows 手机,你为什么不使用SQLite for Windows Phone 8.1 (SQLite.WP81, Version=3.9.2) nuget 包? WinRT 仅适用于桌面应用程序。如果您正在创建 Windows 8.1 应用程序,那么您确实需要在两者中添加特定的 SQLite 引用。 1) Windows 8.1 中的SQLite for Windows Runtime (Windows 8.1) SQLite.WinRT81, Version=3.10.2 2) SQLite for Windows Phone 8.1 SQLite.WP81, Version=3.9.2 在 windows phone 8.1 此外,您还需要重新构建您可能已添加到特定调试配置中的任何可移植或参考项目,然后构建您的项目以避免任何错误。

【讨论】:

您好 Jerin,感谢您的回答。我在适用于 PC 的 Windows 应用程序上有相同的项目。它在那里运作良好。我必须在 windows phone 8.1 应用程序中使用相同的包装器,因为我在 windowsphone 应用程序中使用与 windows 应用程序相同的 sqlite-winrt 方法。我发现 SQLite-WinRT 包装器在 Windows 应用程序和 Windows Phone 应用程序中都支持。 sqlwinrt.codeplex.com 它适用于 PC,因为 PC 版本是 WinRT 版本,这个项目是专门为此而设计的,但不是 windows phone 8.1 版本。此版本支持 Windows Phone 8.1 的 Silverlight 版本。这个网站上的Discussion 和Issue 证明了这一点。 嗨 Jerin,它在 Windows phone 8.1 模拟器中工作。由于我需要将配置更改为 ARM 并给出错误,因此无法在 windows phone 8.1 真实设备中工作。 PCL 文件呢?他们的构建配置是什么? 我没听懂你。你的意思是构建配置?你能不能看看上面的截图。我的构建配置与屏幕截图中显示的完全相同。

以上是关于SQLite WinRT 包装器在 Windows phone 8.1 项目中的处理器架构之间提供了不匹配的主要内容,如果未能解决你的问题,请参考以下文章

SQLite-WinRT 包装器中的关闭连接

用于 WinRT 的 TFS 2012 构建和 SQLite

什么是WinRT语言预测?

如何在带有 ARM CPU 的 WinRT 设备中部署 SQLite?

如何保存StorageFile以便以后使用?

C++/CX 能否简化我的(非 WinRT)WPF 应用程序?