一个我已经做了很长时间没有任何问题的项目突然开始抛出诸如
之类的错误The type or namespace name 'xxx' does not exist in the namespace 'yyy' (are you missing an assembly reference)?
在这种情况下, namespace 都是核心 .Net 库,如 System.Data
、Linq
和 IO
一直使用没有任何问题。
我已经解决了 this 中的所有问题诸如确保工作区中的所有项目都对目标框架设置使用相同版本的 .Net 等问题。
我删除了所有有问题的库并重新添加它们,但问题仍然存在。我怀疑它们的库本身是否已损坏,因为我在解决方案的其他项目中引用了它们。
最佳答案
回滚我使用 TFS 的工作后,我设法弄清楚我做了什么导致了这个错误:我在我的项目中添加了一个名为“System”的文件夹,并在其中放置了一个类文件。
这是一个很容易重现的问题:创建一个项目,向其中添加一个名为 system 的文件夹(此时它仍会编译),然后在其中创建一个 .cs 文件,这时所有有趣的错误都会发生。
问题源于“System”文件夹的名称,该名称导致在其中创建的任何文件都在命名空间“.System”下。
我可以理解为什么现在有一个名为“System”的文件夹/命名空间会导致问题,但我认为如果 Visual Studio 在创建具有此类名称的文件夹/命名空间时发出警告以首先阻止此问题的发生,那将会有所帮助。我有 logged a bug使用 MS,至少将此记录下来可能会帮助任何其他犯过与我相同错误的人!
关于c# - 命名空间中不存在类型或命名空间名称 - 但命名空间确实存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762385/