几天前,我启用了Ninject DLL的第三方调试来测试一些东西。现在我无法从Ninject源文件中分离调试器,因此代码正在步进(尝试步进,如果找不到源文件,则进入Ninject源代码)。Telerik源代码也出现了同样的问题。我已经在调试选项中勾选了“仅启用我的代码(仅托管)”,但Visual Studio仍然会进入第三方代码。如何调试自己的代码并避免进入第三方DLL文件?
很遗憾,JeffN825的答案对我也没有用。
这个方法可以解决问题:
为你的可执行项目创建一个后期构建步骤:
在“生成事件”>“后期生成事件命令行”下,添加以下脚本(将<路径>替换为你的路径),以在创建后删除pdb文件:
ECHO Y | DEL $(SolutionDir)<MyProject>\bin\Ninject.pdb
ECHO Y | DEL $(SolutionDir)<MyProject>\bin\Ninject.Web.Mvc.pdb
现在当我运行我的项目时,Ninject代码没有被执行。
您需要清理Visual Studio的符号缓存 - 参见Stack Overflow问题如何在Windows Vista上清除Visual Studio缓存?。
还要检查工具 -> 选项 -> 调试 -> 符号下的内容。
删除其中不想调试的源位置。并删除“在此目录中缓存符号”的文本框值中的文件,然后单击“清空符号缓存”(我建议执行所有这些操作,因为有时我发现它有点古怪)。
然后重新启动Visual Studio,并确保在再次开始调试时,您的Ninject / Telerik DLL文件旁边没有.pdb文件。