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

Debugging 我可以在Visual studio(.net/C)中访问位于不同解决方案中的源代码吗,debugging,visual-studio-2019,intellisense,solution,pdb-files,Debugging,Visual Studio 2019,Intellisense,Solution,Pdb Files,我有一个解决方案A,它有启动项目和解决方案B。解决方案A使用解决方案B中的东西。为此,A有一个项目,在重建时将DLL和.pdb复制到A的目录中。有没有办法让解决方案a识别位于B中的源代码?例如,如果我在B中有一个moo类,我能完成以下任务吗 解决方案A中的Intellisense是否了解类型moo和moo的方法,包括在尝试实例化新对象时推荐它? 能够F12解决方案A中的moo类型,并让visual studio为我打开原始源代码,就像源于解决方案A的类型一样? 我可以在Visual Studio

我有一个解决方案A,它有启动项目和解决方案B。解决方案A使用解决方案B中的东西。为此,A有一个项目,在重建时将DLL和.pdb复制到A的目录中。有没有办法让解决方案a识别位于B中的源代码?例如,如果我在B中有一个moo类,我能完成以下任务吗

解决方案A中的Intellisense是否了解类型moo和moo的方法,包括在尝试实例化新对象时推荐它? 能够F12解决方案A中的moo类型,并让visual studio为我打开原始源代码,就像源于解决方案A的类型一样? 我可以在Visual Studio中访问位于不同解决方案中的源代码吗 studio.net/C

要调试解决方案A中解决方案B的项目,应确保解决方案B中的xx.dll和xx.pdb文件位于解决方案A的outputpath文件夹中

正如Hans所说,您可以右键单击解决方案A->Add->Existing Project->选择解决方案B的相关xxx.csproj

然后,单击解决方案A中项目的引用->添加引用->项目->选择解决方案B中导入的目标项目

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

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

此外,如果解决方案B的项目是类库项目,也可以使用解决方案a的项目上的添加引用节点来引用目标xxx.dll

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

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

然后你可以在你的项目中使用它

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

在xxx.csproj文件中添加以下内容:

然后构建一次你的项目,然后你就可以得到它


尽管存在一个警告,但引用的组件xxx不能被引用,vs仍然可以找到被引用的项目并使用其内容。

解决这一问题的最现代方法是创建一个B的Nuget包并在a中引用它。额外的好处是可以控制您希望在a中使用哪个版本的B,但不提供2。如果您只是想要一个quick-n-dirty解决方案,只需将B项目作为现有项目从其当前位置添加。警告如果您正在与其他开发人员共享解决方案“A”,这将不会太好!你肯定试过这个??将一个项目添加到一个解决方案中既快捷又无痛,没有任何要求一个项目只属于一个解决方案。我不确定我是否被允许在公司内这样做。另外,如果我在解决方案B中编辑项目,那么在我打开解决方案A时,对源代码的更改会反映出来吗?@felisimo:会的,因为只有一个源代码文件,只要你不做修改copy@PerryQian-我不会忘记的。在我的工作电脑上打开此选项卡,并将在周一重新讨论此问题。
<ItemGroup>
        <ProjectReference Include="xxxx\SolutionB\xxxx.csproj">  // the path of the project in Solution B
            <Name>xxxxx</Name>  //name of the project           
        </ProjectReference>
</ItemGroup>