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

标签 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)?

在这种情况下, namespace 都是核心 .Net 库,如 System.DataLinqIO一直使用没有任何问题。

我已经解决了 this 中的所有问题诸如确保工作区中的所有项目都对目标框架设置使用相同版本的 .Net 等问题。

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

最佳答案

回滚我使用 TFS 的工作后,我设法弄清楚我做了什么导致了这个错误:我在我的项目中添加了一个名为“System”的文件夹,并在其中放置了一个类文件。

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

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

我可以理解为什么现在有一个名为“System”的文件夹/命名空间会导致问题,但我认为如果 Visual Studio 在创建具有此类名称的文件夹/命名空间时发出警告以首先阻止此问题的发生,那将会有所帮助。我有 logged a bug使用 MS,至少将此记录下来可能会帮助任何其他犯过与我相同错误的人!

关于c# - 命名空间中不存在类型或命名空间名称 - 但命名空间确实存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762385/

相关文章:

vb.net - 在 Visual Studio 2015 中限制 Visual Basic 的新语言功能

c++ - 在 Visual Studio 中使用 System() 在 Windows 中从源 C++ 文件编译 C++ 代码

c# - Windows 桌面应用程序中是否有 API 函数可以获取电池电量?

c# - 字典和函数

c# - 如何解压缩 dotnet 核心中的存档?

c# - 从 'foreach' 中有效地删除项目

.net - 从.NET代码中删除未使用的局部变量

git - 为 Visual Studio 配置 git 以推送到神奇的 gerrit 分支

c++ - 在 Visual Studio 2012 中,图书馆员和链接器有什么区别?

c# - 如何将挂载点的 Volume GUID 转换为实际路径?