我可以访问 Visual studio (.net/C#) 中不同解决方案中的源代码吗

Can I access source code sitting in a different solution in Visual studio (.net/C#)

我有解决方案 A(其中有启动项目)和解决方案 B。解决方案 A 使用解决方案 B 中的东西。为此,A 有一个项目,当重建时将 dll 和 .pdbs 复制到 A 的目录。有没有办法让解决方案 A 识别 B 中的源代码?例如,如果我在 B 中有一个 class moo,我可以完成以下操作吗?

  1. 解决方案 A 中的 Intellisense 是否知道类型 moo 和 moo 的方法,包括在尝试实例化新对象时推荐它?
  2. 能够 F12 解决方案 A 中的 moo 类型并 visual studio 为我打开原始源代码,就像源自解决方案 A 的类型一样?

Can I access source code sitting in a different solution in Visual studio (.net/C#)

要在解决方案 A 中调试解决方案 B 的项目,您应该确保解决方案 B 的 xx.dllxx.pdb 文件位于解决方案 A 的输出路径文件夹中。

正如Hans所说,可以右击Solution A -->Add-->现有项目-->select方案B的相关xxx.csproj

之后,单击解决方案 A 中项目的 引用 --> 添加引用--> Projects--> select 从解决方案 B 中导入的目标项目。

有了它们,您可以调试该项目并在解决方案 A 中输入 B 的代码。

=================

此外,如果方案B的工程是class库工程,也可以使用Add Reference解决方案 A 项目上的节点以引用目标 xxx.dll.

右击项目-->添加引用-->浏览-->在新实例中找到解决方案B的输出文件xxx.dll

请注意,您应该使用调试配置来构建它们。

然后你就可以在你的项目中使用了。

此外,您还可以使用解决方案A的xxx.csproj文件中的ProjectReferencexml节点。

将这些添加到 xxx.csproj 文件中:

<ItemGroup>
        <ProjectReference Include="xxxx\SolutionB\xxxx.csproj">  // the path of the project in Solution B
            <Name>xxxxx</Name>  //name of the project           
        </ProjectReference>
</ItemGroup>

然后build一下你的工程就可以搞定了

虽然有警告the referenced component xxx cannot be referenced,vs仍然可以找到引用的项目并使用其内容。