限制Visual Studio 2010调试第三方DLL文件

3
几天前,我启用了Ninject DLL的第三方调试来测试一些东西。现在我无法从Ninject源文件中分离调试器,因此代码正在步进(尝试步进,如果找不到源文件,则进入Ninject源代码)。Telerik源代码也出现了同样的问题。我已经在调试选项中勾选了“仅启用我的代码(仅托管)”,但Visual Studio仍然会进入第三方代码。如何调试自己的代码并避免进入第三方DLL文件?
2个回答

1

很遗憾,JeffN825的答案对我也没有用。

这个方法可以解决问题:

为你的可执行项目创建一个后期构建步骤:

在“生成事件”>“后期生成事件命令行”下,添加以下脚本(将<路径>替换为你的路径),以在创建后删除pdb文件:

ECHO Y | DEL  $(SolutionDir)<MyProject>\bin\Ninject.pdb
ECHO Y | DEL  $(SolutionDir)<MyProject>\bin\Ninject.Web.Mvc.pdb

现在当我运行我的项目时,Ninject代码没有被执行。


1
+1. 我不认为Ninject应该首先以这种方式发布pdb文件,我已经在此问题上开了一个问题 here - StriplingWarrior

0

您需要清理Visual Studio的符号缓存 - 参见Stack Overflow问题如何在Windows Vista上清除Visual Studio缓存?

还要检查工具 -> 选项 -> 调试 -> 符号下的内容。

删除其中不想调试的源位置。并删除“在此目录中缓存符号”的文本框值中的文件,然后单击“清空符号缓存”(我建议执行所有这些操作,因为有时我发现它有点古怪)。

然后重新启动Visual Studio,并确保在再次开始调试时,您的Ninject / Telerik DLL文件旁边没有.pdb文件。


1
Jeff,我按照链接清除了缓存和符号缓存,但是不知道为什么我无法让VS进入Ninject代码。然而,我注意到了一件奇怪的事情。当我取消勾选调试选项中的“启用仅限我的代码”复选框时,VS就不会进入Ninject代码。很奇怪的是,Visual Studio的“启用仅限我的代码”选项以相反的方式工作。或者也许我在基础层面上无法理解它。 - Jatin
Jeff,我无法摆脱Ninject/Telerik pdbs。如果我手动删除它们,它们会在下一次构建解决方案时重新创建。 - Jatin
你正在自己构建 Ninject/Telerik 源代码吗? - Jeff
Jeff,恐怕不行。对于Telerik,我只需使用“添加引用”导入dll。对于Ninject,我使用“添加库引用”从Nuget安装了Ninject.MVC3。就源代码而言,几天前我为了调试它(生成pdb文件)构建了Ninject的源代码。我认为这似乎是问题所在,但我不确定该如何处理。 - Jatin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接