我使用dotPeek v1.2
和VS2013 Update 3
来尝试调试引用的C#.dll代码。我已按照以下教程中的所有说明进行操作:Using dotPeek as a Symbol Server(http://localhost:33417/
设置为符号位置等。)说实话,我读过很多文章,例如this和this,梳理了所有必需的设置,并且真的没有看到调试第三方非框架.dll的一个工作解决方案所以我不相信这是一个完全正常的产品从这个方面
Regardelss,dotPeek应该允许一旦符号服务器开始步入并根据他们的文档调试来自VSNET的第三方程序集的代码。我知道为dotPeek选择哪些.dll,因为我从Debug调查了它们的路径 - > Windows - >模块。
我碰巧还安装了ReSharper
,当我右键单击一行代码并选择“转到声明”时,我可以反编译。问题是,符号服务器似乎没有做任何事情来协助在调试时提供代码。相反,ReSharper提供的反编译源似乎是VS.NET想要进入的。问题是我总是得到以下错误:
源文件: C:\ Users \用户名\应用程序数据\本地\ JetBrains的\ ReSharper的\ V8.2 \ SolutionCaches_ReSharper.Meijer.Ecommerce.Nav.WebAppServices.-382002776 \反编译\反编译\ 53 \ 66e7ccc2 \ MyClass.cs
模块:C:\ Projects \ MyProject \ bin \ Debug
处理:[24808] vstest.executionengine.x86.exe
源文件与构建模块时不同。你会 像调试器一样使用它?
如果我说'是',调试器中的步骤似乎位于文件中不存在且不同步的行上。这是有道理的,因为它显示了“源文件”位置的.cs
类,但是从/bin/Debug
加载.dll
但是,我不明白为什么会发生这种情况,因为dotPeek
应该提供来自/bin/Debug
的加载符号而不是试图进入任何反编译来源ReSharper
已经提出过。
如何对此进行配置,以便VS2103
实际调试从dotPeek
提供的符号和代码?
答案 0 :(得分:16)
一个很大的问题是,您需要确保在工具中为缓存目录设置了有效的路径 - >选项 - >调试 - >符号页面。
此外,在主调试选项页面(工具 - >选项 - >调试 - >常规)上,请确保:
还值得检查"打印源服务器诊断消息到输出窗口"选项,并在尝试进入第三方代码时检查输出窗口。它应该有希望指出任何问题。
这就是我设置的方法,我可以调试第三方dll(显然,dotPeek也需要在开始调试之前在程序集资源管理器中加载.dll)。