很奇怪:无法找到C#类型或命名空间名称 – 构建成功

在VS2012 IDE中打开时,我的项目中出现了一个奇怪的错误。 在我使用另一个引用项目的地方突然说"Type or Namespace name could not be found" 。 并且通过“说”,我的意思是当我将鼠标hover在它上面时,它的文字用红色加下划线并带有错误。 intellisense不适用于该代码。 但是(这里是奇怪的部分),错误没有显示在错误控制台中,项目构建并运行正常。

我甚至可以调试并逐步完成代码,它工作得非常好。 因此在运行时项目被引用很好,但在设计时IDE无法找到它。 这种情况在过去的两周里一直有效,然后才突然变得有些疯狂。 这真的很烦人,因为我在没有intellisense的情况下编写垃圾!

有没有人见过这样的东西或有任何建议?

我发现这是VS2012的一个已知问题。 检查您是如何构建的,64位或32位。 它不适用于64位,但它将使用32位。 它会说缺少设计并且设计不起作用,但程序运行正常。 我听说尚未发布的新VS更新将修复它。

我有这个。 我在项目属性的“应用程序”部分中引用了“目标框架”设置为“.Net Framework 4”的程序集。 我将其更改为“.Net Framework 4.5”,不仅在引用的程序集的项目中,而且还在我正在构建的项目中,并且它工作正常。 试一试。

手动删除对其他项目库的所有引用并重新添加。 Intellisense在那时重建了它需要的任何东西,这样做在过去帮助了我。

与此处的其他几个答案相关,我有一个使用“数据”命名空间的“数据”项目。 建造得很好,但刚刚开始显示来自intellisense的错误(即使它继续建设正常。)(VS 2015.)

我通过将“数据”项目和命名空间更改为“MyCompany.Data”来修复此问题。

奇怪的是,这个问题似乎直到最近才出现,但是做出改变确实解决了这个问题。 据推测,命名空间中存在与另一个项目或引用的冲突,这可能构建正常,但智能感知无法处理。

您可以在“ 项目”属性的“ 应用程序”选项卡中更改此 您还可以打开EDMX图表 ,右键单击,选择模型浏览器,在模型浏览器选项卡中选择第二个可折叠项目,点击属性,然后您将找到生成的entity framework实体和上下文的命名空间选项 。 (同样,如果修改entity framework模型的命名空间,您可能还需要更改相关连接以匹配[在Web.Config中用于ASP.Net和MVC。])

确保没有名称与Project default namespace相同的class

确保你没有在.net 4项目中引用.net framework 4.5项目!

此问题的另一个来源是包含多个项目的解决方案,其中包含相同名称空间的代码。 编译器可以处理这个问题。 智能感知不会。

在文本编辑器中检查.proj文件,并确保引用的路径正确。

如果在引用的文件上将Build Action设置为“None”并忘记它,也会发生这种情况。

我有同样的问题,它将构建和运行良好,它只会总是显示该错误,我不能使用intellisense与类。

我实际上使用了在新文件中创建类的自动方法来解决问题,然后只是从真实类中复制代码。 我删除了旧文件,重命名了新文件,现在它可以工作了。