我有一个带有一个VB.NET ASP.NET项目的VS 2013解决方案,该项目在同一个解决方案中引用了几个c#类库项目(而不是DLL)。我在其中一个c#项目中的一些方法重载中对逻辑做了很多更改。由于VB.NET项目广泛使用这些重载,我想看看这些方法被引用了多少个位置。我转到包含更改的c#项目,右键单击我想要的重载,然后选择查找所有引用,但它只显示c#项目中的引用。但是,当我在VB.NET项目中使用其中一个方法时,它会找到VB.NET项目中的所有引用以及c#项目中的方法声明。
我可以对方法名称进行解决方案范围的文本搜索,但是这个方法名称被多次使用,因为它已经超载了。因此,我想搜索特定的重载方法签名,而不是方法名称。
这是VS 2013的一个众所周知的缺点吗?还有其他事情我也注意到我注意到从VB.NET项目中选择Go To Reference
对于在ac#项目中声明的方法会将你带到对象浏览器而不是直接到源项目本身的方法定义。
答案 0 :(得分:1)
这是一个老问题,微软的反馈网站上有很多错误反馈报告。规范的可能是this one。引用Dustin Campbell的回应:
一般问题是C#和Visual Basic不会共享任何用于查找所有引用,转到定义或重命名等功能的符号表的公共基础结构。因此,这些功能在多种语言之间不起作用。也就是说,我们正在寻找未来改变这种情况的方法,但所需的工作非常充实。
注释一下,C#和VB.NET IDE在表面上看起来很相似,但它们之间的非常不同。其中一部分原因是它们得到了微软内部不同群体的支持,这是任何软件公司的生存策略,大型团体都无法运作。但最重要的是,历史在这方面发挥了重要作用,Visual Basic在很长一段时间内都拥有强大的IDE支持。当他们转向VB.NET时,他们并没有丢掉这项工作,至少因为他们必须支持所有以前的IDE功能,所以不要疏远他们现有的客户群。 C#团队在没有行李的情况下重新开始,他们从零开始。不可避免地,它们之间的内部结构,如IntelliSense符号表,完全不同。
没有忘记解决“共同基础设施”问题,罗斯林项目是工具性步骤。它花了很长时间才完成,但它已经准备好了。集成到VS2015中。是否实际解决了这个问题是我还不知道的事情,我将在几个月内完成。也许有RC版本的人可以确认。他们确实创建了两个版本的Roslyn,一个用于C#,另一个用于VB.NET。糟糕,