CodeLens没有显示引用

113

我最近正在处理的项目解决方案中,CodeLens由于某些原因停止工作。它没有显示引用而是显示“- references”。但是,当我打开另一个项目的Visual Studio时,它可以正常工作。我可以确认CodeLens已启用。你有什么办法让它工作吗?


它只存在于特定的文件中吗?还是存在于该解决方案中的所有内容中? - John Gardner
22个回答

117

我的解决方案:

关闭并重新打开CodeLens功能。

注意:许多人在更新后发现该功能被关闭,所以您只需要重新打开即可。感谢@razblack的指出。如果这是您的问题,请不要忘记给他的评论点赞!

  • 进入 工具->选项->文本编辑器->所有语言->CodeLens。
  • 取消选中“启用CodeLens”选项,然后单击“确定”。
  • 返回 工具->选项->文本编辑器->所有语言->CodeLens。
  • 选中“启用CodeLens”选项,然后单击“确定”。

注意:我曾经通过关闭有问题的 .cs 文件,然后重新打开来解决过此问题。可能还需要关闭任何引用的文件。

我的问题:

与原贴作者类似,我进行了大量的重构后,CodeLens停止刷新引用。我看到了对于不存在的代码的陈旧引用,也看到了原帖中描述的“- 引用”的问题。

我的环境和特定场景:

  • Visual Studio 2015 with Service Pack 2 和 Resharper Ultimate 10.0.1
  • 我进行了大量的重构,我的项目在一个小时左右无法编译。一旦我可以再次编译该项目,引用就不起作用了。

13
升级至“Update 3”后,我发现“CodeLens”已被禁用... 将其重新启用后,问题也得以解决。 :) - razblack
1
也在 VS 2017 上工作过!+1+ - kenny
这个对我没有效果,但是删除 .suo 文件可以解决问题。 - gakera
自上一次更新 vs2017 (15.9.2) 之后,CodeLens 已被禁用,谢谢。 - rubStackOverflow
VS 2022 预览版默认已关闭此功能,现在已经可以正常工作了。谢谢。 - inliner49er

55

我也遇到这个问题。
CodeLens 在小型解决方案中正常工作,但在大型解决方案中无法正常工作。
此外,这种行为伴随着 Alm.Shared.Remoting.RemoteContainer.dll 进程崩溃。
已尝试在 VS 2013 Update 4 和 VS 2013 Update 5 RC 中进行。
解决方案:
关闭所有程序并清除 %LocalAppData%\Temp 文件夹(或其中的 ALM 文件夹)。


3
只删除 ALM 文件夹下的内容对我有用。将其全部清除对我来说有点可怕。 - KarlZ
2
在我的 Vs2017 中运行良好,其中没有循环引用。 - Binary Worrier
我也试过了!这真的应该是最佳答案。 - MistaGoustan
6
我有 VS 2017,但是出于某种原因,在上述 Temp 目录下不存在 ALM 文件夹 :| - Radderz
1
也对VS2019有所帮助 - 对于解决方案中的某些文件,它是可以的,但对于其他文件,codelens完全丢失了。即使在VS小更新之后,删除.vs文件夹,问题仍然存在。最终清理Temp文件夹有所帮助。 - Sz. Moncz

17

一个简单可行的解决方案!

我尝试在Visual Studio(2015)中启用CodeLens -->

  1. 快速启动(Ctrl+Q) Ctrl+Q
  2. 选项(CodeLens) CodeLens Options

但是,它仍然被启用 :( 然后,通过关闭程序,它最终成功: Win+R --> %temp% Enter 删除所有文件

只有Win+R


我的解决方案最近没有帮助我..尝试了不同的版本。最终有效的方法是,从git中进行了一个_fetch_ .. pull request,然后_references又开始_显示_了!(有点可疑哈!!_) - Irf

16

对我来说,CodeLens已被禁用,请确保它仍处于启用状态。

我知道这是一个简单的答案,但它可能会帮助一些开发人员。

进入“工具”->“选项”->“文本编辑器”->“所有语言”->“CodeLens”,然后如果未选中“启用CodeLens”选项,请单击该选项并保存。

看起来Visual Studio出于某种原因禁用了它,也许是在更新或缓慢启动后。


1
奇怪,更新到16.8.0后它被禁用了,不知道还有什么其他的问题...唉 - Jason
1
我甚至没有更新VS,但它却自动禁用了... - Jonas Marty

14

尝试删除 .suo 文件,该文件存储了一些环境/解决方案设置。这对我有所帮助。


这对我有用,使用VS Enterprise 2017 15.4.4。 - gakera
2
我刚刚彻底删除了.vs文件夹,这样就可以解决问题了。VS Enterprise 2017 15.7.3 - CularBytes
我认为这对我有用。我使用的是VS Professional 2017版本15.8.5,这对我起了作用。 - Jonas Karlsson
这对我有用,没有删除ALM文件夹或切换代码镜头开关。哦我的天啊,哈哈,我刚才看到这已经是第二次为我解决了这个问题。 - gakera
这个解决方案在我使用的Visual Studio 2019中也行得通。 - Russell Bearden

11

我在使用VS 2019时遇到了这个问题。

我尝试了禁用/启用代码镜像,但没有起作用。

之后我删除了.suo文件,但仍然无法解决问题。

之后我又尝试了禁用/启用代码镜像(在删除.suo文件后),现在它又可以正常工作了。

更新(大约两周后):

它又开始出现问题了,这次我在扩展中禁用了IntelliCode,突然间Codelens又开始工作了。

再次更新(2019年11月25日):

我向微软报告了这个问题,并与他们进行了对话。此时您不必关闭所有的Intellicode,只需在“工具”->“选项”->“Intellicode”中禁用Intellicode重构即可。实际修复将在VS 2019 16.4版本中推出。


1
我在 VS 2019 中遇到了问题,我删除了 .suo 文件,然后重新启动了 VS,问题解决了。 - Pierre-Olivier Pignon
是的,我可以确认禁用Intellicode重构后一切都恢复正常了。我现在可以正常地在.NET Core 2.2和3.1上工作了。使用的是VS2019。 - Mário Meyrelles
1
你救了我的一天!谢谢。你有实际的 Visual Studio 论坛 bug 项吗,这样我就可以跟进,以恢复 Intellicode 选项? - ArchieCoder
你能分享一下 Visual Studio 论坛的 bug 项吗?这样我也可以跟进。 - Uzair Ashraf
1
今天早上我刚升级到16.10.4版本,但是“显示引用”选项已经从选项窗口中完全删除了。在禁用Intellicode并重新启动后,“显示引用”重新出现,并且Code Lens再次开始显示方法引用。 - stricq

7
您的解决方案中可能存在循环引用导致CodeLens无法工作。在Visual Studio Connect网站上,对此问题的评论提供了一些细节:
“不知何故,我的解决方案中的两个项目相互引用,导致循环引用。我认为这是Resharper引用未定义类的快捷方式的副产品。一旦我清理了所有引用,现在我可以获得有效的引用计数值。”
“您是如何进行‘清理’引用的?”
“在我的情况下,我的解决方案有多个项目文件。在项目A的引用文件夹中,有一个对项目B的引用。在项目B的引用文件夹中,有一个对项目A的引用。这导致了循环引用。如果您尝试手动执行此操作,VS会提示您关于循环引用的警告。”
“为了清理这个问题,我从我的项目A中删除了对项目B的引用。我必须对我的项目B进行一些小的类定义,以便最终仍然可以编译所有内容。”

2
我找不到循环依赖,但是当我将构建更改为发布配置时,我意识到它开始显示引用 :) 但是,看起来它确实是某种循环依赖问题。 - kkocabiyik
3
链接似乎已经失效,因此我从Google网页缓存中提取了相关部分,并直接添加到答案中。 - cgmb
我的问题已经解决了,通过删除临时文件。 - Irf

4

我发现如果你使用防火墙屏蔽了Visual Studio,则代码智能提示功能将无法正常工作。

因此,要让它正常工作,需要解除对其的防火墙屏蔽。

或者可以编辑防火墙文件的设置:

C:\Windows\Microsoft.NET\assembly\GAC_32\ 
   Microsoft.Alm.Shared.Remoting.RemoteContainer\
   v4.0_12.0.0.0__b03f5f7f11d50a3a\
   Microsoft.Alm.Shared.Remoting.RemoteContainer.dll

3
我相信你,因为我们公司使用了一种叫做Avecto Defendpoint的东西,导致我的VS出现了同样的问题。 - Vincent
@Vincent,我只能说对我来说这是问题所在,是本地防火墙的问题。在找到它之前,我已经访问了那个页面,但没有帮助到我... - Aristos

2

我在使用已安装了“更新1”的VS2015时遇到了问题。

问题是,我最初通过“自定义”设置而非“默认”选项安装了VS2015,并且不小心忽略了“常用工具”下的“Git for Windows (第三方)”选项。

可以通过以下步骤解决这个问题:

  • 再次运行VS2015设置(从控制面板-卸载程序)
  • 右键单击VS2015,选择“更改”
  • 在弹出屏幕上,选择“修改”
  • 在设置屏幕上,选择“Git for Windows(第三方)”
  • 继续进行设置,安装所选功能

快速提示:我的同事在安装了VS2015更新2后,成功修复了他的CodeLens。 - vpalmu

2
在Visual Studio Professional或Enterprise中,您可以通过以下方式启用CodeLens:
工具 → 选项 → 文本编辑器 → 所有语言 → CodeLens -> 启用
某些社区版版本不支持此功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接