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

我试图调试一个项目,其中包含一个我添加的 DLL 引用,DLL 存储在一个外部目录中,我刚刚添加了一个引用。现在我当然可以调试我的项目,但是在我的另一个 dll 上调用方法的那一行我不能进入它,也就是 F12。

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

但是什么乱七八糟的,我敢肯定有一个更干净的方法吗?

我好像记得我是否拷贝了一些 PDB 文件之类的东西,但我不记得了。我需要打开2个视觉工作室的副本,1为我的主要项目和1为我的参考 DLL? ? ?

66363 次浏览

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

复制。DLL 及。PDB 文件到您的参考文件夹。VisualStudio 将获取。自动显示 PDB 文件,并使用文件路径显示源代码。

当引用的程序集在其他地方生成时,还可以使用符号服务器和源服务器来实现此目的: http://msdn.microsoft.com/en-us/library/vstudio/ms241613.aspx

在进行调试生成时,所有 dll 和 pdb 文件都在宿主项目中建立。所以不需要手动复制文件。

右键单击“解决方案”,选择“添加/现有项目”..。 导航到 Class lib 文件夹并选择 proj 文件(例如 myproj.csproj)。 这些文件不会被复制,只是被引用,你可以在 IDE 中为这个类打开源代码,然后以正常的方式设置断点,这样就可以正常工作了。

我通过做下面的步骤得到了解决方案

尝试禁用 Just My Code (JMC)。

工具-> 选项-> 调试器 取消选中“仅启用我的代码”

我有同样的问题,我解决了通过清洁和重建的解决方案。它将在。Pdb 文件来定位并命中第二个项目中的断点。

VisualStudio2022向解决方案资源管理器添加了一个新的顶级节点: External Sources,您将在调试模式下找到该节点。你可以从那里看到所有装载的 DLL。您还可以在调试模式下查看从 Debug -> Windows -> Modules加载的模块。从那里,右键单击所需的 dll,然后单击 open file location,然后将 pdb 文件复制到该位置。这应该允许您单步执行外部 dll 的任何方法。 参考文献: < a href = “ https://devblogs.microsoft.com/visalStudio/debug-foreign-resources-with-vision-Studio/”rel = “ nofollow norefrer”> https://devblogs.microsoft.com/visualstudio/debugging-external-sources-with-visual-studio/