我的项目今天突然遇到问题,单击Go To Definition会给我一个奇怪的错误:"无法导航到插入符号下的符号。"
我通过NuGet安装Costura.Fody后第一次注意到了。我已经卸载它,但问题仍然存在。我已经多次清理并重建了解决方案。没有" Fody"或" Costura"我的git提交历史中的任何地方,在这个开始发生的时间点之前或之后,所以我认为我的.gitignore文件之一处于不良状态。
只有当目标定义在另一个文件中时才会出现问题;转到当前打开的文件中的内容定义工作正常。 Peek Definition也可以正常工作。其他解决方案/项目也很好 - 它只是导致问题的那个。
我使用的是Visual Studio 2015.这个问题似乎不会出现在2013版本中。
为什么会出现此错误以及如何解决?
答案 0 :(得分:84)
我遇到了同样的问题。我做了以上所有评论中提到的所有步骤。它没用。但是当我关闭Visual Studio时,删除了“.vs”文件夹(在解决方案文件夹中),然后重新打开Visual Studio。它现在就像一个魅力。问题消失了。
答案 1 :(得分:60)
最近几天我一直在收到这个错误,每天至少两次..真烦人! 这里提出的解决方案都没有对我有用。我找到了,因为很难找到我在这里写下来的,是:
声明: 我正在使用Xamarin
考虑@OzSolomon和@xCasper已经说过:
@OzSolomon
知道这会重置您的许多IDE自定义,包括 安装插件。
使用前请确保您对此感到满意 / resetuserdata
@xCasper
但是,如果您通过Microsoft同步了您的设置,那么大多数情况都是如此 偏好似乎恢复了自己。我说的最多,因为它 似乎我的键绑定没有恢复,并恢复默认。 其他所有内容,例如我选择的主题和颜色选择, 我的IDE的布局(例如我有标签),什么不是 似乎回来了。
答案 2 :(得分:43)
我尝试了David的解决方案(关于单击空符号缓存选项的解决方案),但它对我不起作用。
我是如何解决的?
对我来说这个错误没有意义,但我解决了这个问题!
答案 3 :(得分:34)
刚出现同样的问题,似乎VS 2015和TFS存在问题。我将一些文件合并到另一个分支后,我遇到了问题。 尝试了几件事情并且有效:
不确定为什么会发生,但这对我有用,也可能值得清除zvi提到的TFSTemp文件夹。
修改强>
此路径:%TMP%\TFSTemp
可以复制粘贴到Windows资源管理器中以访问TFS temp
答案 4 :(得分:17)
以下为我解决了这个问题:
成功完成后,我不再收到错误,我也没有关闭并重新打开任何内容。
答案 5 :(得分:9)
就这样做:
答案 6 :(得分:6)
清理缓存符号(工具>选项>调试>符号> EmptySymbolCache)。 以管理模式打开您的解决方案。
这解决了我的问题。
答案 7 :(得分:5)
上面的答案是正确的,但路径略有偏差,请尝试相反:
%AppData%\..\Local\Temp\TFSTemp
答案 8 :(得分:4)
我已完成上述所有事情,但我的问题没有解决(试图通过VS 2017开启项目),
之后我意识到问题是我的csproj文件。我的项目(mvc)由VS 2015创建...所以我编辑了我的csproj文件并替换
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
由此:
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.7\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
这完全是关于DotNetCompilerPlatform的版本。
(我理解这个问题的方式是我创建了新的mvc项目 VS 2017并比较了两个csproj文件 - 新版本和VS 2015创建的文件 - )
https://stackoverflow.com/users/15667/xan的其他相关信息(因为答案已被锁定)
对我来说(VS2019打开较旧的解决方案)它只影响解决方案中的一个项目。进口看起来像这样:
<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
工作项目只有
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
行,所以我删除了第一个2和intelisense /去定义等再次开始工作。
HOWEVER 由于缺少Roslyn csc编译器,现在无法运行Web项目。
最后,整体运作的解决方案是更新项目的Microsoft.CodeDom.Providers.DotNetCompilerPlatform
和Microsoft.Net.Compilers
Nuget包。
答案 9 :(得分:3)
使用 F12 尝试转到方法定义时遇到此问题。
所有提及的项目(/resetuserdata
除外 - 我没有尝试,因为从中恢复会很痛苦)不起作用。
对我有用的是什么:
从命令提示符转到解决方案的文件夹并运行以下代码(这将删除解决方案中的所有 bin 和 obj 文件夹):
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S bin') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S obj') DO RMDIR /S /Q "%%G"
重新启动Visual Studio。打开解决方案应该花一点时间,因为它现在重建 obj 文件夹。
执行此操作后 F12 !
作为旁注,我通常将其放在我的解决方案文件夹中的批处理文件中,与.sln
文件一起放置。这样可以以后轻松运行!
答案 10 :(得分:2)
关闭visual studio,然后删除该项目上的隐藏文件名.vs,然后再打开visual studio,然后构建项目。繁荣!一切都好!
答案 11 :(得分:2)
最近升级到VS 2017 15.5.0并遇到了这个问题。我试过了:
答案 12 :(得分:2)
更新visual studio后我遇到了同样的问题,所以这就是我如何解决问题的。
希望这对遇到此问题的人有所帮助。
答案 13 :(得分:1)
其他人提交的大多数路径要么不起作用,要么稍微倒退。
清空此文件夹:
%localappdata%\Temp\TFSTemp
这对我有用。
答案 14 :(得分:1)
我认为这是由于新的Roslyn C#编译器,在其github问题跟踪器中,您可以找到许多实际开发人员遇到此问题并尝试修复它,但目前它仍处于打开状态:{{3} }
我也花了一些时间在这周围,我输掉了战斗。但是我发现以下解决方法对我来说很有效。
解决方法强>
对我而言,它似乎比GoToDefinition更好,因为:
答案 15 :(得分:0)
在我读到roslyn编译器(see this issue at GitHub)中已修复此特定问题后,我将Visual Studio 从15.0.x更新到15.3.1。它现在就像一个魅力。
答案 16 :(得分:0)
在将Xamarin项目导入VS15时,我发生了这个奇怪的错误。 这里列出的解决方案都不适合我。经过一天的挫折之后,我也遇到了类似这样的问题:Visual Studio "Find" results in "No files were found to look in. Find stopped progress."
在搜索对话框中单击“全部搜索”时,弹出窗口通知我无法搜索其他文件。 所以我认为'去定义'不起作用的原因是由于同样的错误,因为在同一个文件中寻找定义确实有效。
上面链接中的奇怪解决方案(按Ctrl + Scroll Lock或Ctrl + Break几次)为我解决了这两个问题。
代码的着色(在“转到定义”功能被破坏时无效)也立即返回。
答案 17 :(得分:0)
对我而言,导航仅适用于XAMARIN解决方案。 这里的建议没有工作。 :( Devenv.exe / resetuserdata不适用于我。
我的解决方案是: 重新创建解决方案,项目,文件夹和工作。 没有进口。 细节:我的项目在VS 2015上,错误发生在VS 2017上。
答案 18 :(得分:0)
我有这个错误已经有一段时间了,直到我无法再接受它,所以我已经尝试了上面所有可能的解决方案,但没有一个对我有用。我注意到错误只出现在某个项目上(就像用户上面提到的那样)而不是其他项目。因此,由于没有任何工作,我在另一个文件夹上再次克隆了我的项目,它又开始工作了。
答案 19 :(得分:0)
我正在使用VS 2017 15.7.5,这对于某些测试文件已停止工作。我注意到它们都是我最近添加的所有新元素,并且在解决方案资源管理器中没有可用的箭头来展开并查看属性/方法。
我先排除掉它们,然后将它们重新包含到我的项目中,然后go to definition命令再次起作用。
答案 20 :(得分:0)
我的问题是我(半意外地)将有问题的.cs文件的属性Build action
更改为Content
。将它改回Compile
就可以了,这很有意义。
答案 21 :(得分:0)
执行&#34; devenv.exe / resetuserdata&#34;后,我的VAssistX失败了,所以,实际上,这让我想起 VAssistX可以通过Goto Implementation解决问题(Alt + G)
答案 22 :(得分:0)
以下对我来说就像一个魅力:
答案 23 :(得分:0)
尝试清理解决方案或清理项目,这对我有用
答案 24 :(得分:0)
清洁解决方案。恢复nuget包。
答案 25 :(得分:0)
我也遇到过这个问题。 VS 2015中的TFS有问题。
我按照这些步骤操作了
清除TFS缓存 这可能在这里:
C:\ Users \(UserName)\ AppData \ Local \ Microsoft \ Team Foundation \(Version)\ Cache
注意:路径可能因操作系统而异,所以不要怪我。
清空符号缓存
工具&gt;选项&gt;调试&gt;符号&gt; EmptySymbolCache 强>
重新启动Visual Studio(可能要求再次连接到TFS)
这适合我。:)
答案 26 :(得分:0)
我也面临同样的问题,所选类的“查找所有引用”已经解决了这个问题。
答案 27 :(得分:0)
如果您最近安装了加载项,请考虑卸载它。这对我有用。
答案 28 :(得分:0)
答案 29 :(得分:-1)
看来你需要至少构建一次项目才能让插入符号浏览变得可用。如果您在尚未构建的项目中遇到此问题,请尝试构建它。
控制 + 移 + 乙