“Microsoft.Phone.Controls.LongListSelector”类型存在于两个DLL文件中。

3
错误信息如下:

类型 'Microsoft.Phone.Controls.LongListSelector' 在以下两个程序集中都存在:

'...\Microsoft SDKs\Windows Phone\v8.0\Libraries\Microsoft.Phone.Controls.Toolkit.dll' 和

'...\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\Microsoft.Phone.dll'

我正在使用最新版本的工具包(Oct '12),这是一个Windows Phone 8项目。
我不确定为什么会出现这种情况,所以我也不知道什么额外的信息可能是相关的,但如果您有任何问题,请随时提问。

看起来您引用了一个旧版本的工具箱。是否尝试在NuGet /库包管理器中升级项目的工具箱引用?是否有最新版本的NuGet? - Paul Annetts
是的,没错。我现在已经在下面添加了一个答案。 - dudledok
3个回答

6
  1. 从Visual Studio更新中安装Nuget Packet Manager

  2. 在Solution Explorer 中右键单击"References", 然后转到 "Manage Nuget packets"

  3. 在左侧面板中,选择 "Online" => "Nuget Official Package Source"

  4. 在右侧面板中搜索 "Windows Phone Toolkit"

  5. 安装并享受使用..

原因是,在wp7中没有LongListSelector,因此他们在工具包中创建了这个功能。但在wp8中,LongListSelector已经包含在内,这导致与过时的wp7工具包发生冲突。因此,更新工具包可以解决这个问题。


4
我仍不知道它发生的原因,但是通过NuGet卸载工具包并重新安装似乎解决了这个问题。

请问您能告诉我如何卸载工具包吗? - Noorul
我认为你可以从你的解决方案中直接删除它。 - dudledok

3
这是一个命名问题。WP8 SDK 包含 LongListSelector 类,而 WP Toolkit 也有同名的类。
这里有类似的讨论 here
您需要更新 NuGet 并安装最新版本的 Windows Phone Toolkit。
官方 FAQ 的解决方案:

问 - 我有 WP8 SDK,并安装了 NuGet 包,但它仍然安装了工具包程序集的 7.1 版本,或者我收到错误消息 - “您正在尝试将此软件包安装到目标为 'WindowsPhone,Version=v8.0' 的项目中,但该软件包不包含任何与该框架兼容的程序集引用。”

答 - 您使用的是较旧的 NuGet 版本。从 www.NuGet.org 安装最新的 NuGet。关闭并重新启动所有的 Visual Studio 实例。现在安装该软件包。它将正确安装。WP8 项目支持从 Nuget 2.1 开始。


我已经在使用最新版本的NuGet(昨天才下载的)。 - dudledok
安装新版本的工具包解决了这个问题。 - Arjun K R

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