一尘不染

如何调试引用的dll(具有pdb)

c#

我的工作区中有两个解决方案,分别是A和B。

解决方案A是一个较旧的项目,我前段时间完成了编码。在解决方案B中,我需要使用解决方案A中的某些类。为此,我添加了对解决方案A中一个项目的dll的引用。

问题是当我尝试调试时。我也希望能够进入A的代码。Visual
Studio无法加载这些类的代码(“当前位置没有可用的源代码。”),我只能查看反汇编,这没有用。

我知道从解决方案A调试类的唯一方法是运行解决方案B,分离所有进程(在“调试”菜单项中),然后从解决方案A附加进程。

但是,这非常不方便,我只能一次调试A ORB。

有没有办法进入参考的dll代码(我确实有其源代码)?


解决方案: 我的错误是我认为一个项目只能是一个解决方案的一部分。实际上,一个项目可以是许多解决方案的一部分。
当需要引用旧项目时,只需将项目添加到解决方案中即可。通过在解决方案资源管理器>添加>现有项目中右键单击新解决方案来完成此操作。
然后,您将能够添加项目参考。正如其他人所写,您可能应该完全避免对自己的代码(或其他可能需要更改和调试的代码)使用dll引用。

MSDN中可以找到有关如何设计解决方案的很好参考。


阅读 326

收藏
2020-05-19

共1个答案

一尘不染

如果您有 项目 参考,它应该立即起作用。

如果它是 文件 (dll)引用,则需要将调试符号(“ pdb”文件)与dll放在同一文件夹中。检查您的项目是否正在生成调试符号(项目属性=>
Build => Advanced => Output / Debug Info = full);如果已 复制 了dll,则将pdb放入其中。

如果您不想复制任何文件,也可以直接在IDE中加载符号,但这需要更多工作。

最简单的选择是使用项目引用!

2020-05-19