【问题标题】:Intellisense showing identifier not found error when everything build successfully一切构建成功时,Intellisense 显示未找到标识符错误
【发布时间】:2018-04-06 21:24:49
【问题描述】:

当我遇到智能感知问题时,我正在处理一个涉及基于 wpf 的 UI 程序的小项目。它不断抱怨找不到几个标识符(类/方法/属性),其中大部分来自另一个程序集。 Visual Studio 的许多其他用户也提出了类似的问题:

  1. WPF assembly reference missing - project still building
  2. Type or namespace cannot be found, when reference does exist
  3. Getting "type or namespace name could not be found" but everything seems ok?

如果问题只发生在引用程序集中的类型上,我可能会忽略它。但是现在即使是同一个程序集中的某些类型也被智能感知确定为“缺失”。今天我在这个wpf项目中新建了一个自定义Window,Visual Studio自动生成代码供进一步使用,如下:

public partial class ReceiveTest : Window
{
    public ReceiveTest()
    {
        InitializeComponent();
    }
}

然后intellisense告诉我找不到标识符'InitializeComponent',并且这个窗口拥有的每个控件也找不到。这真的很令人沮丧,因为它使智能感知完全无用。通常,这些“缺失”标识符在 FileName.g.i.cs 中声明并由 Visual Studio 本身管理,但似乎 Visual Studio 不知何故无法识别它。

现在我已尽我所能,包括上述链接中给出的解决方案,但一次又一次失败。任何人都可以解释这个问题并告诉我解决它的方法吗?我将不胜感激。

附:我正在使用 Visual Studio 2017 和 PowerTool 插件

【问题讨论】:

  • 有时您只需要保存并重建所有项目,它就可以正常工作,就我而言。
  • 您的项目是否构建?然后尝试重新启动 Visual Studio。
  • 重新启动 Visual Studio 导致它崩溃一次,但问题的“InitializeComponent”部分自行解决了。但是,来自其他程序集的类型仍然标记为“未定义”,并且每个程序集的目标平台都设置为 .Net 框架 4.6.2。我不知道如何完全消除这个问题,但至少我现在可以继续我的工作了。

标签: c# wpf intellisense visual-studio-2017


【解决方案1】:

将测试项目从 2010 年升级到 2017 年

从 2010 年升级后,在 VS2017 上的一个测试项目上跟进最近的一个问题。尝试了一切来摆脱波浪状的红色,但他们不会去。

问题是 'namespace.zone.section' 存在时没有找到 'namespace' 并被智能感知等(在某些情况下是 'zone' 或 'section')看到了

  1. 已删除sou文件
  2. 已删除项目文件
  3. 已删除参考文献
  4. clean、restart、restart后全部重新应用 服务器和以上所有。

    问题仍然存在。

所以我删除了测试项目(从 2010 年导入)在 2017 年重新创建项目,将所有原始测试类复制到新项目中,添加回所有其他项目(支持测试),重新添加 moq 等。只拿了大约20分钟。

并且...编译并工作。

结论是原始项目文件(测试项目)中有一些东西没有升级并搞砸了。无论如何,现在一切都很好。

我发布这个是为了让你不必浪费你的时间。

【讨论】:

  • 这与原始问题的关系并不明显,即使分享可能是有用的经验。您能否进行编辑以更清楚地说明这对原始问题有何帮助?谢谢。
猜你喜欢
  • 2017-04-18
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
  • 2019-04-26
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多