命名空间中不存在类型或命名空间名称 - 但命名空间确实存在

时间:2013-09-12 10:57:56

标签: c# visual-studio visual-studio-2012 tfs

我一直在努力工作很长时间而没有任何问题的项目突然开始抛出错误,例如

The type or namespace name 'xxx' does not exist in the namespace 'yyy' (are you missing an assembly reference)?

在这种情况下,命名空间都是核心.Net库,例如System.DataLinqIO,我一直在使用它没有任何问题。

我已经解决了this问题中的所有问题,例如确保工作区中的所有项目都使用相同版本的.Net进行Target Framework设置。

我删除了所有相关库并重新添加它们但问题仍然存在。我怀疑他们的库本身是否已损坏,因为我在解决方案中的其他项目中引用它们。

4 个答案:

答案 0 :(得分:4)

在回顾完我的TFS工作后,我设法解决了我所做的创建了这个错误:我在项目中添加了一个名为“System”的文件夹,并在其中放入了一个类文件。

这是一个很容易重现的问题:创建一个项目,向它添加一个名为system的文件夹(此时它仍然会编译),然后在其中创建一个.cs文件,这就是所有有趣的错误都会发生的时候。

问题源于“System”文件夹的名称,该文件夹导致在其中创建的任何文件位于命名空间“.System”下。

我可以理解为什么有一个名为“System”的文件夹/命名空间现在会引起问题,但我认为如果Visual Studio在创建这样一个名称的文件夹/命名空间时首先警告它会有所帮助。我logged a bug和MS在一起,至少记录这个记录可以帮助任何其他与我犯同样错误的人!

答案 1 :(得分:0)

我的系统意外关闭后出现了同样的问题,即使VS尝试恢复,问题仍然存在。

我的解决方案资源管理器中有两个项目。为了解决这个问题,我右键单击了与错误消息关联的项目并选择了“Build”。

之后,问题得到了解决。

只是补充说,在我从另一个“项目”添加对“项目”的引用后,问题就永久解决了。

答案 2 :(得分:0)

我将要引用的文件的命名空间从 myproject.shared.constants 重命名为 myproject.SOMETHING.shared.constants

此后,它建议“使用myproject.SOMETHING.shared.constants”作为建议。我将其重命名为 myproject.shared.constants ,然后它起作用了。

答案 3 :(得分:0)

尝试清理然后重建 dll 文件。我遇到了同样的问题,尝试了来自互联网的不同建议,但没有一个工作。但它会。如果您不知道如何执行以下步骤:

  1. 打开你的 dll 项目文件。 2.单击解决方案资源管理器右键单击您的 Dll 项目名称,您将找到清理和重建选项。