是否有可能将dll附加到解决方案中未由任何项目引用的调试器?

问题描述:

正如标题所示。我有5个项目的解决方案。所有dll都相互连接,每当我开始调试时,我可以*调试其中的任何一个。我想添加一个单独的项目,并通过仅使用反射来访问它的对象(其余和第6个项目之间没有任何引用)。我可以将它自动连接到调试器吗?我知道函数'附加到现有流程',但这是手动工作。是否有可能将dll附加到解决方案中未由任何项目引用的调试器?

你可以把下面一行在你的调试DLL,在其功能要debuge。它会自动要求您附加调试器

System.Diagnostics.Debugger.Launch(); 

您不需要任何特殊的东西。确保你在这个单独项目的dll旁边有pdb文件,源代码在本地与用于构建该项目的版本相匹配,并且可能在工具 - >选项 - >调试中关闭“我的代码”。此时,Visual Studio应该获取调试信息,并允许您设置断点并进行正常调试。

如果PDB位于别的地方可以手动指向PDP经由调试 - >窗口 - >模块查看通过从上下文菜单中选择模块上有兴趣调试“载荷符号”。

如果来源不完全匹配您可以指示VS使用任何你也很可能会导致混乱的调试经验(How does Visual Studio know if the source file matches the original version?)。