转到定义:“无法导航到插入符号下的符号。

在我的项目中,我突然开始遇到一个问题,点击“转到定义”给我一个奇怪的错误:“无法导航到插入符号下的符号。

在这里输入图像说明

我通过NuGet安装Costura.Fody之后第一次注意到了它。 我已经卸载它,但问题仍然存在。 我已经清理并重build了多次解决scheme。 在这个开始发生的时间点之前或之后,在我的git commit历史的任何地方都没有“Fody”或“Costura”的实例,所以我想我的一个.gitignore的文件卡住了一个坏的州。

只有在目标定义在另一个文件中时才会出现问题。 转到定义在当前打开的文件中的东西工作正常。 Peek定义工作得很好。 其他解决scheme/项目也能很好地工作 – 只有这个问题才会引起问题。

我正在使用Visual Studio 2015.该问题似乎不会在2013版中发生。

为什么会发生这个错误,我该如何解决?

最近几天我得到这个错误,至less每天两次..真烦人! 这里提出的解决scheme都没有为我工作。 我发现,因为我很难find我在这里写下来,是:

  • closuresVisual
  • 打开控制台并导航到Visual安装文件夹,在我的电脑中是C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE
  • 运行devenv.exe / resetuserdata
  • 打开Visual Studio,需要一些时间来加载。

免责声明:我使用Xamarin

考虑到@OzSolomon和@xCasper曾经说过:

@OzSolomon

知道这将重置您的许多IDE定制,包括已安装的插件。

在使用/ resetuserdata之前确保你已经习惯了

@xCasper

如果您的设置通过Microsoft同步,但大部分偏好似乎都会自行恢复。 我说最多的是因为我的键盘绑定似乎没有恢复,并重新成为默认设置。 其他的东西,比如我select的主题和颜色select,我的IDE的布局(例如我有选项卡)以及什么都没有回来。

刚刚有相同的问题,似乎有与VS 2015和TFS的问题。 我将一些文件合并到另一个分支后出现问题。 试了几件事情,它的工作:

  • closures所有打开的文件,然后closuresVS
  • 工具 – >选项 – >debugging – >符号 – >空符号caching
  • TFS检入并获取最新信息(出于某种原因,在此之后)

不知道为什么会出现这种情况,但是这对我来说很有用,如zvi所提到的那样清除TFSTemp文件夹也是值得的。

编辑

这个path: %TMP%\TFSTemp可以复制粘贴到Windows资源pipe理器中以访问TFS temp

我尝试了David的解决scheme(关于单击“空符号caching”选项的解决scheme),但对我无效。

我怎么解决它?

  • closures所有文件
  • 清洁解决scheme
  • 重build解决scheme

对我来说这个错误没有道理,但我解决了这个问题!

以下为我解决了这个问题:

  • 在解决scheme资源pipe理器中,右键单击解决scheme名
  • select“清洁解决scheme”

成功完成后,我不再收到错误,我不必closures并重新打开任何东西。

上面的答案是正确的,但path稍微偏离,请尝试这个:

 %AppData%\..\Local\Temp\TFSTemp 

清理caching符号(工具>选项>debugging>符号> EmptySymbolCache)。 以pipe理模式打开您的解决scheme。

这解决了我的问题。

去做就对了:

  • closuresVisual Studio
  • 转到项目文件夹并删除.user文件(可能被隐藏)
  • 打开Visual Studio

我遇到了同样的问题。 我做了上面所有评论中提到的所有步骤。 它没有工作。 但是,当我closuresVisual Studio,删除“.vs”文件夹(在解决scheme文件夹中),然后重新打开Visual Studio。 它现在就像一个魅力。 问题没有了。

我想说这是由于新的Roslyn C#编译器,在其github问题跟踪器中,你可以find许多实际的开发者遇到这个问题,并试图解决它,但目前它仍然是开放的: https : //github.com / DOTNET /罗斯林/问题/ 9602

我也花了一些时间来解决这个问题。 但是,我发现以下解决方法适用于我。

替代方法

  1. 更改键盘快捷键F12 – > Edit.FindAllReferences (用于TextEditor)。 这将find定义和所有引用,并将查找符号结果中的根节点(定义)集中在一起。
  2. 现在按下F12,ENTER将会和F12一样。

对我来说,它似乎比GoToDefinition更好,因为:

  • 点击F12后,您可以通过按UP或DOWN来select一个参考而不是定义
  • 您只需在几个按键(F12,ENTER,UP,DOWN)之间循环select参考和定义,便于记忆。
  1. 检查两个类的名称空间。
  2. 如果要在类库中添加类 – 请确保使用的是正确的项目types。 有两个类库types。 类库(包)和类库。 (select后面的那个,因为它创build.dll文件),然后可以添加如果需要在其他解决scheme。

如果您最近安装了加载项,请考虑卸载它。 这对我来说是有用的。

我也面临同样的问题,select类的“查找所有引用”已经解决了这个问题。

我也遇到过这一次。 VS 2015中的TFS有问题。

我遵循这些步骤,它的工作

  1. 清除TFScaching这可能在这里:

    C:\ Users \(UserName)\ AppData \ Local \ Microsoft \ Team Foundation \(Version)\ Cache

注意:path可能因操作系统而异,所以不要责怪我。

  1. 清空的符号caching

    工具>选项>debugging>符号> EmptySymbolCache

  2. 重新启动的Visual Studio(它可能会要求再次连接到TFS)

这为我工作:)

清洁解决scheme 还原nuget包。

尝试清理解决scheme或清理您的项目,这对我工作

其他人提交的大部分path都不起作用,或者稍微向后一点。

清空这个文件夹:

 %localappdata%\Temp\TFSTemp 

这对我有效。

以下对我来说就像一个魅力:

  1. 我检查了当我build立项目时出现的警告
  2. 他们中的一些人提到了有关程序集版本冲突 Visual Studiobuild议我点击警告,然后按Enter键。 一个popup窗口提供自动修复问题,所以我做了。
  3. 问题解决了!

这个奇怪的错误发生在我将Xamarin项目导入到VS15中。 这里列出的解决scheme都没有为我工作。 经过一天的沮丧,我也遇到类似这样的问题: Visual Studio“查找”结果在“找不到文件查找,find停止的进度。

当在search对话框中点击“全部search”时,popup窗口会通知我其他文件无法search。 所以我想到“去定义”的原因没有工作是由于相同的错误,因为在同一个文件中find定义没有工作。

在上面的链接奇怪的解决scheme(按Ctrl + Scroll Lock或Ctrl + Break几次)解决了我的两个问题。

代码的着色(“去定义”function被破坏时不起作用)也立即返回。

在执行“devenv.exe / resetuserdata”之后,我的VAssistX失败了,实际上,这提醒我VAssistX可以通过转到实现(Alt + G)来解决问题

我的问题是,我(半偶然)将有问题的.cs文件的属性Build action更改为Content 。 把它改回Compile就有诀窍,这是有道理的。

当我读到roslyn编译器( 在GitHub上看到这个问题 )中解决了这个问题之后 ,我将Visual Studio从15.0.x版本更新到15.3.1。 它现在像一个魅力。

对我来说,导航只是没有XAMARIN解决scheme。 这里的build议还不成立。 🙁 Devenv.exe / resetuserdata不适合我。

我的解决scheme是:重新创build解决scheme,项目,文件夹和作品。 没有import。 细节:我的项目在VS 2015上,错误在VS 2017上。

更新visual studio后,我有同样的问题,所以这是我如何解决这个问题。

  1. closures视觉工作室。
  2. 从我的项目中删除所有.vs文件夹。
  3. 打开视觉工作室。
  4. 打开我的项目。

希望这有助于任何有这个问题的人。

出于某种原因,我的call_name.xaml.vb类已被排除在项目之外(这似乎发生在我从TFS获得最新版本之后)。 我只是不得不再次包括它,现在它的作品!