2

我有一个非常大的解决方案,其中主要包含 C# 项目、一些 C++/CLI 和托管 C++ 项目以及一个 VB.NET 项目。但是,在从 C# 项目中搜索引用时,我遇到了应该在 VB.NET 项目中显示的结果的问题。主要有两个问题:

  1. 我有一个 C# 项目,我知道它是从 VB.NET 项目中引用的,但它非常大,我不确定我需要查看的代码在哪里。如果我右键单击 C# 项目中的类名并单击“查找所有引用...”,它会在解决方案中的其他位置找到对该项目的所有引用,但没有结果显示来自 VB.NET 项目的任何用法。但是,我可以使用“在文件中查找”函数找到对该类的任何引用,并按字符串查找对 C# 程序集的调用。为什么会这样,我是否可以启用一个设置来告诉 VS 2010 在从 C# 项目中查找引用时搜索 VB.NET 项目?

  2. 在 VB.NET 项目中,如果我右键单击一个类型并选择“转到定义...”,并且类型是在 C# 程序集中定义的,我会得到对象浏览器而不是 VS 打开包含类定义。

我有一种强烈的感觉,这些问题的原因是相关的,所以我将它们归为一个问题而不是两个问题。这个问题有点难以解释,所以如果需要澄清,请告诉我。

TL;博士; 有什么办法可以让我在 VB.NET 项目中找到对 C# 程序集的引用并从 VB.NET 项目跳转到 C# 程序集中的定义?

4

1 回答 1

5

不幸的是,这只是 Visual Studio 的一个限制。各个语言服务(VB.Net、C# 和 C++)不会以任何方式相互交流。不同语言项目之间的引用与引用磁盘上的二进制文件的方式完全相同。语言之间没有源代码检查,因此您会得到所看到的行为

于 2013-08-26T18:44:29.430 回答