【问题标题】:Dealing with C# and VB.net Projects in same solution在同一解决方案中处理 C# 和 VB.net 项目
【发布时间】:2010-10-21 15:14:45
【问题描述】:

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

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

我已经尝试了反向实验,从一个 vb.net 项目开始,并引用一个 c# 项目,这次在右键单击视图定义上,它带我到代码资源管理器,所以再次,不是原始代码用于编辑。

如果两个项目使用相同的语言,那么一切都会很好。

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

复制:

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

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

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

注意你的结局......

【问题讨论】:

    标签: visual-studio visual-studio-2010


    【解决方案1】:

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

    相同语言的项目到项目引用共享单一语言服务。因此,它可以控制它的所有代码,并且可以提供特殊的实时内容优势。第一个是 goto 定义和即时智能感知。目前,Visual Studio 中没有任何工具可以让语言服务像您希望的那样跨越引用边界相互通信。

    【讨论】:

    • 我遇到了同样的事情。另一个恼人的副作用是 标记信息也不会跨越 IDE 中的语言边界。
    【解决方案2】:

    对于“goto definiton”,您可以改用“navigate to”(ctrl + commma)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      相关资源
      最近更新 更多