转到定义:“无法导航到插入符号下的符号。
在我的项目中,我突然开始遇到一个问题,点击“转到定义”给我一个奇怪的错误:“无法导航到插入符号下的符号。
我通过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
我也花了一些时间来解决这个问题。 但是,我发现以下解决方法适用于我。
替代方法
- 更改键盘快捷键F12 – > Edit.FindAllReferences (用于TextEditor)。 这将find定义和所有引用,并将查找符号结果中的根节点(定义)集中在一起。
- 现在按下F12,ENTER将会和F12一样。
对我来说,它似乎比GoToDefinition更好,因为:
- 点击F12后,您可以通过按UP或DOWN来select一个参考而不是定义
- 您只需在几个按键(F12,ENTER,UP,DOWN)之间循环select参考和定义,便于记忆。
- 检查两个类的名称空间。
- 如果要在类库中添加类 – 请确保使用的是正确的项目types。 有两个类库types。 类库(包)和类库。 (select后面的那个,因为它创build.dll文件),然后可以添加如果需要在其他解决scheme。
如果您最近安装了加载项,请考虑卸载它。 这对我来说是有用的。
我也面临同样的问题,select类的“查找所有引用”已经解决了这个问题。
我也遇到过这一次。 VS 2015中的TFS有问题。
我遵循这些步骤,它的工作
-
清除TFScaching这可能在这里:
C:\ Users \(UserName)\ AppData \ Local \ Microsoft \ Team Foundation \(Version)\ Cache
注意:path可能因操作系统而异,所以不要责怪我。
-
清空的符号caching
工具>选项>debugging>符号> EmptySymbolCache
-
重新启动的Visual Studio(它可能会要求再次连接到TFS)
这为我工作:)
清洁解决scheme 还原nuget包。
尝试清理解决scheme或清理您的项目,这对我工作
其他人提交的大部分path都不起作用,或者稍微向后一点。
清空这个文件夹:
%localappdata%\Temp\TFSTemp
这对我有效。
以下对我来说就像一个魅力:
- 我检查了当我build立项目时出现的警告
- 他们中的一些人提到了有关程序集版本冲突 Visual Studiobuild议我点击警告,然后按Enter键。 一个popup窗口提供自动修复问题,所以我做了。
- 问题解决了!
这个奇怪的错误发生在我将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后,我有同样的问题,所以这是我如何解决这个问题。
- closures视觉工作室。
- 从我的项目中删除所有.vs文件夹。
- 打开视觉工作室。
- 打开我的项目。
希望这有助于任何有这个问题的人。
出于某种原因,我的call_name.xaml.vb类已被排除在项目之外(这似乎发生在我从TFS获得最新版本之后)。 我只是不得不再次包括它,现在它的作品!