在我尝试在我的代码中使用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;
答案 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>