"警告CS1684:引用类型X声称它在...中定义但无法找到它"

Rob*_*b K 9 .net c# .net-4.0 visual-studio-2010

在构建我们称之为PWTests的测试项目时,我收到了这个警告.

警告CS1684:对类型'System.Windows.Input.ICommand'的引用声称它在'c:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.dll'中定义,但它无法找到

这个项目应该测试一个我们称之为PW的类库.我无法确定为什么它认为System.Windows.Input.ICommand是在System.dll中定义的.实际定义了ICommand的PresentationCore在测试项目和类库项目中被正确引用.我已经尝试删除对PresentationCore的引用,清理并重新添加它(如其他问题中所述),但这些引用不起作用.

我怎样才能确定是什么导致它认为ICommand在System.dll中?

kry*_*our 2

我们确实需要更多信息,但这就是我解决这个问题的方法。

往往是当您通过 nuget 添加某些内容或类似的内容时,如果您查看 app.config,您会在其中看到一些重定向(可能)检查 ICommand 所在的程序集(通常在您的 bin 文件夹中或直接引用)并确保版本在那里对齐。

如果您发布您的 app.config 并说明您正在使用的程序集,这将会有所帮助,这样我就可以更准确。