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

JL.*_*JL. 6 visual-studio-2010 visual-studio

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

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

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

如果两个项目都是相同的语言,一切都很好.

对此有解释吗?可能是一个允许在不同语言的项目之间轻松导航代码的解决方案?

重现:

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

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

现在,右键单击VBCLass并选择"转到定义".

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

Jar*_*Par 7

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

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

  • 我遇到了同样的事情.另一个令人讨厌的副作用是<summary>标签信息也没有越过IDE中的语言边界. (3认同)