调试一个引用的DLL,我在另一个SLN中有源代码

本文关键字:另一个 SLN 源代码 DLL 一个 引用 调试 | 更新日期: 2023-09-27 18:13:24

我正在尝试调试一个项目,该项目引用了我添加的DLL, DLL存储在外部目录中,我刚刚添加了一个引用。现在我当然可以调试我的项目了,但是在我的另一个dll中调用方法的行我不能进入它,即F12.

我能够做到这一点的一种方法是将我的项目(dll)作为现有项目添加到我的解决方案中,并替换引用的dll以使用附加的项目而不是磁盘上的文件。

但是真是一团糟,我肯定有更干净的方法。

我似乎记得我是否复制了一些PDB文件或其他东西,但我不记得了。我需要打开2个副本的visual studio, 1为我的主要项目和1为我的参考DLL??

调试一个引用的DLL,我在另一个SLN中有源代码

在您自己的机器上以Debug模式重新构建第二个解决方案(以便该PDB中的文件路径特定于您的机器)。

复制 . dll和. pdb文件到你的references文件夹。Visual Studio将自动选取. pdb文件,并使用文件路径显示源代码。

当引用的程序集在其他地方构建时,您也可以使用Symbol Server和Source Server来实现此目的:http://msdn.microsoft.com/en-us/library/vstudio/ms241613.aspx

我通过下面的方法得到了解决方案

尝试禁用JMC。

Tools -> Options -> Debugger取消勾选"只启用我的代码"

我有同样的问题,我通过清理和重建解决方案来解决。它将纠正.pdb文件中的引用,以定位并击中第二个项目中的断点。

当您进行调试构建时,所有的dll和pdb文件都在主机项目中建立。因此不需要手动复制文件。

右键单击解决方案,选择添加/现有项目…导航到Class lib文件夹并选择项目文件(例如myproject .csproj)。文件没有被复制,只是引用,你可以在IDE中打开类的源代码,并以正常的方式设置断点,它只是工作。

Visual Studio 2022在解决方案资源管理器中添加了一个新的顶级节点:External Sources,您将在调试模式下找到它。你可以从那里看到所有加载的dll。您还可以在调试模式下查看从Debug -> Windows -> Modules加载的模块。从那里,右键单击所需的dll,然后单击open file location,然后将pdb文件复制到该位置。这应该允许您进入外部dll的任何方法。参考:https://devblogs.microsoft.com/visualstudio/debugging-external-sources-with-visual-studio/