使用sqlite和winrt编译出错

4
我刚刚打开了SDK中的csharp版本地理定位示例,我想简单更改一下:我希望后台任务将坐标保存在sqlite数据库中。

为此,我添加了Microsoft Visual C++ Runtime Package、SQLite for Windows Runtime和通过codeplex下载的sqlite-net库,并将目标平台从任何CPU切换到x64
尝试编译时,我收到了以下错误提示。
Windows Runtime type 'Windows.Foundation.Point' was found in multiple 
referenced winmd files. Please remove either 'C:\Program Files (x86)\
Microsoft SDKs\Windows\v8.0\ExtensionSDKs\Microsoft.VCLibs\11.0\References
\CommonConfiguration\neutral\platform.winmd' or 'C:\Program Files (x86)\
Windows Kits\8.0\References\CommonConfiguration\Neutral\Windows.winmd' 
from the list of referenced files.  

我该如何解决这个问题?

1
我也遇到了同样的问题 :( - Null Pointer
1
请查看此链接:http://support.microsoft.com/kb/2738078 - He Shiming
@HeShiming。这个解决方法对我有用。关键的句子是“为了解决这个问题,在每个C#项目的引用中删除Microsoft.VCLibs组件”。这个方法至少解决了编译错误。但后来遇到了其他问题,可能与此相关,所以我不能确认它是否真正解决了问题。(我在使用VS2013时放弃了WinRT 8.1的SQLite。) - Stephen Hosking
1个回答

4

我听说如果将所有SQLite代码移动到Windows存储类库中,并从后台任务引用它,就可以解决这个问题。

我的解决方法只是删除/重命名'C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral\Windows.winmd',它只有18kb,所以我认为我不太可能需要里面的任何东西。


1
当我从项目中移除了C++运行时引用 (http://support.microsoft.com/kb/2738078),并进行清理和构建后,我能够摆脱“Windows.Foundation.Point was found in multiple referenced winmd files”错误,但是当我向项目添加sqlite-net NuGet包时,由于包装程序依赖于已删除的C++引用,我遇到了许多类型错误。然而,当我创建了一个Windows 8.1类库项目,添加了SQLite和C++引用,并添加了Sqlite-net NuGet并将目标平台设置为64位时,构建没有任何错误。 - Kokulan Eswaranathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接