Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;警告CS1684:引用类型X声明它在中定义。。但却找不到;_C#_.net_Visual Studio 2010_.net 4.0 - Fatal编程技术网

C# &引用;警告CS1684:引用类型X声明它在中定义。。但却找不到;

C# &引用;警告CS1684:引用类型X声明它在中定义。。但却找不到;,c#,.net,visual-studio-2010,.net-4.0,C#,.net,Visual Studio 2010,.net 4.0,我在构建一个我们称之为PWTests的测试项目时收到了这个警告 警告CS1684:对类型“System.Windows.Input.ICommand”的引用声称它是在“c:\Program Files(x86)\Reference Assemblys\Microsoft\Framework.NETFramework\v4.0\System.dll”中定义的,但找不到它 这个项目应该测试一个类库,我们称之为PW。我无法确定它为什么认为System.Windows.Input.ICommand是在S

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

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

这个项目应该测试一个类库,我们称之为PW。我无法确定它为什么认为System.Windows.Input.ICommand是在System.dll中定义的。PresentationCore实际上定义了ICommand,它在测试项目和类库项目中被正确引用。我尝试删除对PresentationCore、cleaning的引用,然后重新添加它(如其他问题中所述),但没有成功


我如何确定是什么导致它认为ICommand在System.dll中?

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

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


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

下面的说明可能不是这里的问题,但我在引用使用VB.NET创建的DLL时遇到此错误。VB.NET不区分大小写,因此在项目设置中,名称空间可能表示为小写,而在源代码中则表示为大写。然后编译器会感到困惑。在这种情况下,只需检查是否存在小写/大写问题并进行修复。

可能出现4.0/4.5混淆。在.NET 4.5中,ICommand在System.dll中定义。在.NET 4.0中,它位于PresentationCore.dll中。