在构建我们称之为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中?
答案 0 :(得分:2)
我们确实需要更多信息,但这就是我如何解决这个问题。
当您通过nuget或其他类似的东西添加内容时,如果您查看app.config,您会在其中看到一些重定向(可能),检查ICommand所在的程序集(通常在您的bin中)文件夹或直接引用)并确保版本在那里排队。
如果您发布了app.config并说明了正在使用的程序集,那将会有所帮助,因此我可以更准确。
答案 1 :(得分:0)
以下注释可能不是这里的问题但是当我引用用VB.NET创建的DLL时出现此错误。 VB.NET不区分大小写,因此在项目设置中,命名空间可能被声明为小写,而在源代码中,它可能被写为大写。然后编译器会感到困惑。在这种情况下,只需检查小写/大写问题并修复它。