ObservableCollection <t>存在于&#39; System.Windows&#39;和&#39;系统&#39;

时间:2017-03-19 20:26:22

标签: c# .net wpf

在我尝试在我的代码中使用ObservableCollection<T>后,在VS 2017中针对.NET 4.6创建一个新的WPF项目后,我收到以下错误,导致应用无法构建:

  

ObservableCollection存在于&#39; System.Windows&#39;和&#39;系统&#39;

在我在VS 2015中创建的项目中,我引用了这两个程序集,应用程序工作正常。我尝试删除app的bin和obj文件夹的内容,重新启动VS并执行Build&gt;清洁解决方案,但没有帮助。

删除对System.Windows的引用允许构建应用程序,但这会对其他代码产生负面影响(例如,我的DelegateCommand的RaiseCanExecuteChanged需要对System.Windows的引用)。

知道为什么会发生这种情况以及如何解决这个问题?

更新以下是完整的错误消息:

  

严重级代码描述项目文件行抑制状态   错误CS0433类型&#39; ObservableCollection&#39;存在于两者中   &#39; System.Windows,Version = 2.0.5.0,Culture = neutral,   PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes&#39;和&#39;系统,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089&#39;

1 个答案:

答案 0 :(得分:3)

问题在于ReSharper正在添加对以下内容的引用:

  

C:\ Program Files(x86)\ Reference   组件\微软\ Framework.NETPortable \ V4.0 \资料\ Profile158 \ System.Windows.dll中

而不是:

  

C:\ Program Files(x86)\ Reference   组件\微软\ Framework.NETFramework \ v4.6.2 \ System.Windows.dll中

一旦我删除了ReSharper添加的引用并手动添加了正确的引用,问题就解决了。

ReSharper检测到我的MVVM框架使用的ICommand的DelegateCommand实现需要对System.Windows的引用,但错误地添加了对.NETPortable中的System.Windows的引用,而不是.NET中的System.Windows ... / p>