我有一个带有一些断点的VS解决方案。当我将解决方案附加到第三方程序时,会省略断点(“断点当前不会被命中。没有为此文档加载符号”)。令人困惑的任何(引用的)项目的断点都不在我的解决方案中,只有那些在我自己的解决方案中的断点不会。因此,在与第三方工具交互时,我无法通过我的项目进行调试。我也尝试了this,但问题仍然存在。我还重新构建了整个解决方案,以重新创建项目的DEBUG信息文件。该位置与其他解决方案相同,但显然未加载其包含的信息。有什么想法吗?
答案 0 :(得分:0)
最后我在this帖子中找到了答案。我查看了已加载的模块(Debug-> Windows-> Modules,同时将程序集附加到进程)并注意到我的实际程序集不在列表中。我想调试的代码是使用.NET 3.5构建的,但只为.NET 4.0加载了模块。通常这可能会被我自动检测到,但是这次自动检测由于一些奇怪的原因不起作用所以我将所选代码类型从托管(v4.0)更改为托管(v2.0),现在它可以正常工作。希望在以后再次在.NET 4.0上进行调试时不会发生这种情况......
答案 1 :(得分:0)
如果之后仍然存在问题,您也可以尝试以下答案。
引用:First answer 或参见:Second answer
开始调试,一旦到达断点或使用Debug > Break All
,请使用Debug > Windows > Modules
。您将看到加载到流程中的所有程序集的列表。找到您要获取调试信息的那个。右键单击它,然后选择“符号加载信息”。您将看到一个对话框,列出所有在其中查找程序集的.pdb文件的目录。对照实际的.pdb位置验证该列表。确保没有找到旧的。
在正常项目中,程序集及其.pdb文件应始终由IDE复制到与.exe相同的文件夹中。项目的bin \ Debug文件夹。如果您一直在使用它,请确保将其从GAC中删除。