我已经工作了很长时间没有任何问题的项目突然开始抛出错误,例如
The type or namespace name 'xxx' does not exist in the namespace 'yyy' (are you missing an assembly reference)?
在本例中,命名空间都是核心 .Net 库,例如System.Data
, Linq
, and IO
我一直在使用,没有任何问题。
我已经解决了所有问题this https://stackoverflow.com/questions/5567945/type-or-namespace-name-does-not-exist问题,例如确保工作区中的所有项目都使用相同版本的 .Net 作为目标框架设置。
我删除了所有有问题的库并重新添加它们,但问题仍然存在。我怀疑它们的库本身已损坏,因为我在解决方案中的其他项目中引用了它们。
在回滚使用 TFS 的工作后,我设法找出导致此错误的原因:我在项目中添加了一个名为“System”的文件夹,并在其中放入了一个类文件。
这是一个很容易重现的问题:创建一个项目,向其中添加一个名为 system 的文件夹(此时它仍会编译),然后在其中创建一个 .cs 文件,这时就会发生所有有趣的错误。
问题源于“System”文件夹的名称,这导致在其中创建的任何文件都位于命名空间“.System”下。
我可以理解为什么现在有一个名为“System”的文件夹/命名空间会导致问题,但我认为如果 Visual Studio 在创建此类名称的文件夹/命名空间时发出警告以阻止此问题发生,将会有所帮助。我有记录了一个错误 https://connect.microsoft.com/VisualStudio/feedback/details/800353/creating-a-folder-called-system-with-a-cs-file-in-it-causes-type-or-namespace-name-does-not-exist-errors对于 MS,至少记录下来可能会帮助其他犯过与我相同错误的人!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)