转到定义并查找所有引用在Visual Studio中不起作用

问题描述 投票:2回答:4

我在VS 2013 Pro中有一个Windows窗体解决方案,它在VB和C#中都有几个项目。其中一个依赖项如下所示:

Startup Project, SP (VB)
    Custom Controls Library, CL (C#)
       Utils/Constants Library, UL (VB)
    UL (again, referenced directly from SP)

我的问题是,当我从SP到CL的定义时,它将我带到对象浏览器。当我从CL转到UL到UL时,它会调出元数据。但是当我从SP转向Def到UL时,它运行正常。此外,当我在CL中查找控件的所有引用时,它不显示SP引用,但是当我从SP执行它时,它在SP和CL中都显示引用。

我搜索了StackOverflow,MSDN和其他几个论坛,并尝试了我发现的所有建议:我删除了所有引用并重建它们(我100.0%确定它们都是项目引用,而不是文件引用)。我已经完全删除了我的解决方案文件并从头开始添加了项目。我确保引用中的GUID与引用的GUID相匹配。它们都是使用相同的框架构建的,并且都是针对相同的处理器类型。所有项目都在生成pdb和xml调试文件。我假设VS2013取消了IntelliSense数据库文件,因为我在磁盘上找不到任何要删除的文件(或者我会试过它!)。

另一个有趣的(我假设相关)细节是CL中的方法/属性重命名不会反映在SP中。不仅重命名SP子类的符号,而且在重建之前,Visual Studio甚至不会提醒我此错误。因此,似乎IntelliSense已损坏,或者我还缺少其他东西。

我真的很茫然。据我所知,此功能已经奏效。从2012年升级到2013年,我无法确定它是否有效。是否有人有相同的经历?我已经禁用了附加组件,重建了解决方案,重新添加了项目依赖项...我会重新安装Visual Studio,但如果有一个更简单的方法,我真的不想失去几个小时的开发。

c# vb.net visual-studio
4个回答
2
投票

目前我只提供Express Edition。我用VS2013 Express尝试了新建的空项目,就像你描述的那样(即VB - > C# - > VB)。我看到了您描述的所有行为,但VS2012 Express显示的行为完全相同。

因此,我担心重新安装无济于事。

我通常使用包含多个项目的解决方案,而Go To Definition等在项目中工作非常顺利,但我从未使用过包含使用多种语言的项目的解决方案。

我想你缺少的功能,“在使用不同.NET语言的项目中顺利运行IntelliSense”,从未实现过。

更新:VS2010的行为方式相同。


2
投票

最近升级到VS2013并且可以告诉您,当您单击定义它的函数名称时,“查找所有引用”选项用于显示解决方案中调用该函数的所有位置。它现在所做的只是告诉你你正在看的那个。

在我面前,我有第218行:公共共享函数MyNewFunction(ByVal test As String)

如果我右键单击MyNewFunction并选择“查找所有引用”,则输出窗口将显示“查找符号结果 - 找到1个匹配项”,它与上面的功能名称,文件和行号相同。所以它实际上是无用的。

当然,除非我们还没有看到一些隐藏的环境?


0
投票

我有同样的问题,试图找到Find All Refs选项,并发现它与多种语言或VS的版本无关,但只是与排除的文件。在解决方案资源管理器中,您可能会看到一个模糊的虚线文件图标,就像我的文件CenterConverter.cs一样:

普通文件有Exclude From Project的右键单击菜单选项,虚线图标源文件有一个用于Include In Project

查看已排除文件的属性,您将看到缺少Build Action(是否编译)和Copy To Output Directory属性。

通过在项目中包含该文件,它将被编译,并且像Go To DefinitionFind All References这样的选项开始有意义。


0
投票

我在Visual Studio 2010中遇到了类似的问题,其中“查找所有引用”命令在正常使用一段时间后消失了。

使用快捷键将显示“当前不可用”行的消息,而尝试“转到定义”将显示错误对话框。

退出并重新打开Visual Studio无法解决问题,我找不到任何会改变这种情况的设置。

奇怪的是,问题仅限于一个源代码文件,而不是另一个。

出于好奇,我关闭了受影响的源代码文件,然后通过双击解决方案资源管理器中的文件重新打开它,这解决了这个问题。

我最好的猜测是,某些内容损坏了文件的缓存索引,并且关闭并重新打开,提示Visual Studio刷新此缓存。

© www.soinside.com 2019 - 2024. All rights reserved.