在同一解决方案中处理C#和VB.net项目

时间:2010-10-21 15:14:45

标签: visual-studio visual-studio-2010

我在一个c#项目中,在这个项目中我引用(使用项目引用)另一个用vb.net编写的类库。

现在,当我右键单击并查看该类的定义时。它没有带我到vb.net项目中的确切源代码,而是带我到动态生成的vb.net类的c#表示。

我已经反过来尝试了实验,从vb.net项目开始,并引用了ac #project,这次是右键单击视图定义,它将我带到代码浏览器,所以再次,不是原始代码用于编辑。

如果两个项目都是同一种语言,那么一切都很好。

对此有解释吗?可能还有一个解决方案,可以在不同语言的项目之间轻松进行代码导航?

重现:

  1. 创建空白解决方案
  2. 添加c#类库
  3. 添加vb.net类库
  4. 在vb.net类库中,class1 - 创建任何旧方法。 (可选)
  5. 在c#类中,添加对vb.net类的引用,例如:

    VBClassLibrary.VBClass myVBClass = new VBClassLibrary.VBClass();

  6. 现在,右键单击VBCLass并选择“转到定义”。

    请注意你最终的地方......

2 个答案:

答案 0 :(得分:7)

这里没有你做错的事。这是Visual Studio如何设计的一个不幸的副作用。当您有两个不同语言的项目时,它们之间的引用不像项目引用,而是类似于文件引用。

Project to Project相同语言的引用共享一种语言服务。因此,它可以控制所有代码,并可以提供特殊的实时内容优势。主要的是goto定义和即时智能感知。今天Visual Studio中没有任何工具可以让语言服务在参考边界上相互通信。

答案 1 :(得分:0)

" goto definiton"你可以改用#34;导航到" (ctrl + commma)