Visual Studio C++ 项目转到定义打开对象浏览器而不是转到源代码

Posted

技术标签:

【中文标题】Visual Studio C++ 项目转到定义打开对象浏览器而不是转到源代码【英文标题】:Visual studio c++ project go to definition opens object browser instead of going to source code 【发布时间】:2018-01-11 05:30:21 【问题描述】:

我看过以下问题并尝试了他们的所有答案:

Visual Studio Go to Definition (F12) opens Object Browser instead of Code View How can I turn "Object Browser" to "Metadata" for "Go to definition" in Visual Studio 2010?

即我尝试过的:

清理项目并删除所有生成的项目文件 重置所有键盘映射

本题与上一题的区别如下:

    这是一个 C++ 项目,不是 c#,没有引用,也没有 .NET 版本。 我没有安装也没有使用 ReSharper 程序。 我已经尝试在单独的目录中签出相同的代码和解决方案,问题不再出现(但在干净签出后仍然出现在原始目录中) 这从今天开始,我不知道可能是什么事件导致了它。我没有安装任何新插件或类似插件。最近唯一发生的事情是,昨天我将一些 NUNIT 引用安装到了一个 C# 项目中,该项目位于同一解决方案中。

由于上面列出的其他帖子没有列出有关问题的明确详细信息,这是对正在发生的事情的详细描述

    我尝试使用 F12 或右键单击菜单转到对象的定义(或转到声明): 它会在符号搜索中显示一个可能性列表,而不是去寻找它的来源(即HeartBeat 类): 所有这些引用都会打开对象浏览器窗口,而不是转到源:

如何将 Visual Studio 的行为恢复正常?

【问题讨论】:

这听起来像是在 Help->Send Feedback in VS 下提交,然后查看响应页面。 @SornelHaetir,如果我明年想要一个解决方案,那么当然可以。在问题中,我可以通过检查新的来解决这个问题,但这对我或遇到此问题的其他人来说并不是很令人满意。 所以你知道,在最坏的情况下,你总是可以通过devenv.exe /resetuserdata完全重置你的VS @DeanSeo,我不知道。你应该从中做出答案。它也有效,所以一定要添加。 【参考方案1】:

正如 OP 所提到的,/resetuserdata 一定会让您的 Visual Studio 恢复到正常,如下所示:

devenv.exe /resetuserdata

虽然这不是基本的解决方案。

这种奇怪的情况可能会发生,尤其是当您同时运行多个 Visual Studio,而您只在其中一个上更改了一些配置。

这是因为 Visual Studio 尝试共享相同的 .vssettings,并且每次退出时都会覆盖该文件,以保持 .vssettings 始终拥有您所做的最新配置集- 最新配置的定义是您关闭的最后一个Visual Studio

因此,您认为自己所做的配置更改可能不是您的 Visual Studio 正在运行的配置更改。

为防止这种情况发生,您可以将您的 .vssettings只读。 然后每次关闭它,你的VS都会抱怨它,但你可以保持你的自定义配置安全。 (我同意,虽然有点丑)

【讨论】:

以上是关于Visual Studio C++ 项目转到定义打开对象浏览器而不是转到源代码的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio C++ 2005-2013 中的智能感知缺少函数定义

转到定义不适用于我的项目(vue 和 sass 文件)[visual-studio-code]

Visual Studio 2010“转到定义”/f12 无法正常工作 [重复]

转到 Typescript 源定义而不是 Visual Studio Code 中的编译定义

转到 Visual Studio Code 中 Angular html 文件中的定义

设置公共语言运行时支持后,无法在 Visual Studio 2013 中调试 C++ [重复]