70

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

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

但是真是一团糟,我确定有更清洁的方法吗?

我似乎记得我是否复制了一些 PDB 文件或其他东西,但我不记得了。我是否需要打开 2 个 Visual Studio 副本,1 个用于我的主项目,1 个用于我引用的 DLL?

4

4 回答 4

80

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

将.DLL 和 .PDB 文件复制到您的引用文件夹Visual Studio 将自动获取 .PDB 文件并使用文件路径显示源代码。

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

于 2013-05-14T15:08:26.460 回答
16

我通过执行以下操作得到了解决方案

尝试禁用 Just My Code (JMC)。

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

于 2016-11-19T12:16:22.097 回答
1

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

于 2017-01-11T03:46:15.807 回答
0

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

右键单击解决方案,选择 Add/Existing Project... 导航到 Class lib 文件夹并选择 proj 文件(例如 myproj.csproj)。这些文件不会被复制,只是被引用,您可以在 IDE 中打开该类的源代码并以正常方式设置断点,它就可以正常工作。

于 2016-11-17T16:27:40.590 回答