目前,我正在尝试将我的Windows应用商店重新定位到Windows 8.1预览版。问题是,我在我的一个项目中使用了sqlite-net包。我按照这里描述的步骤: http://www.lyalin.com/2013/07/09/sqlite-for-windows-runtime-for-windows-8-1-apps/并从此链接下载了sqlite visual studio扩展的预发布版本: http://www.lyalin.com/2013/07/09/sqlite-for-windows-runtime-for-windows-8-1-apps/。 我在项目中添加了对Windows运行时新安装的sqlite的引用,但是在构建时出错:
Error 2 Windows Runtime type 'Windows.Foundation.Point' was found in
multiple referenced winmd files. Please remove either 'C:\Program Files (x86)\Microsoft
SDKs\Windows\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0\References\CommonConfiguration\neutral\platform.winmd'
or 'C:\Program Files (x86)\WindowsKits\8.1\References\CommonConfiguration\Neutral\Windows.winmd'
from the list of referenced files. C:\Users\Jarosław\Desktop\BCM\Win8Client\MetriceModel\WINMDEXP
MetriceModel (Windows 8.1)
在某个论坛上有人暗示,如果从项目中删除对microsoft visual c ++运行时包的引用,它将解决问题。在我完成整个解决方案编译后,我在运行时遇到了以下异常:
Unable to load DLL 'sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
异常抛出一行:
#if NETFX_CORE
SQLite3.SetDirectory(/*temp directory type*/2, Windows.Storage.ApplicationData.Current.TemporaryFolder.Path);
#endif
SQLite.cs文件的(文件来自前面提到的sqlite-net包)。
Project的文件夹bin / Debug / AppX包含文件sqlite3.dll。我的解决方案中的每个项目都将x86作为平台目标。我该如何解决这个问题?在迁移项目之前,一切正常。
答案 0 :(得分:4)
您必须在sqlite下载页面(v3.8.0.2)上安装vsix软件包的正式版。
在Visual Studio外接程序管理器中,此程序包版本为3.7.1.17,并且它不正确。
之后,我认为这是一个错误,你必须选择好的处理器(平台目标)。
我遇到了同样的错误,因为我在x64机器上部署了x86编译的迁移winrt应用程序(8.1)... =>在Windows 8.0中它可以工作,但不在Windows 8.1中。
如果您有x64机器,则必须选择x64目标编译。我希望它能在未来得到解决......
答案 1 :(得分:1)
请您重新安装SQLite for WinRT 8.1的预览版吗?初始包存在问题,但我们与他们合作进行更新。 http://sqlite.org/download.html
答案 2 :(得分:1)
如果你有
的例外 SQLite3.SetDirectory(/*temp directory type*/2,windows.Storage.ApplicationData.Current.TemporaryFolder.Path);
检查您的项目是否使用x86
而非any CPU