45

我正在使用 Visual Studio 2012。我想调试 .NET Framework 源代码。我已经尝试了几乎所有的选项,但我仍然得到There is source code available for Current Location. 符号已成功加载。我已经尝试加载 Microsoft Symbol Server 并尝试了这个 url http://referencesource.microsoft.com/symbols。但我仍然无法调试。我已经尝试了这些链接, http: //blogs.msdn.com/b/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspxhttp: //msdn.microsoft.com/en-us/library/cc667410.aspx

也跟着这个,http://blogs.msdn.com/b/dotnet/archive/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source-代码.aspx

有人可以在 VS 2012 中调试 .NET Framework 源代码吗?

4

6 回答 6

9

此功能在 VS2010 SP1 中被破坏,它也可能在 VS2012 中被破坏。或者,Microsoft 可能会为最新的 .NET Framework 版本发布不正确的 PDB 文件(以前发生过这种情况)。尝试替代解决方案。我正在使用 .NET Reflector VSPro - 它允许反编译程序集,在调试期间加载反编译的符号,并为这些反编译的程序集使用完整的调试功能。

于 2013-03-23T04:26:01.503 回答
9

调试 .NET Framework 源代码被破坏了很长时间。请参阅 VisualStudio UserVoice 上的相关建议允许开发人员单步执行 .NET Framework 源。好消息:终于修好了!请参阅 Microsoft 的以下博客文章:

.NET 参考源的新外观

简而言之:

它目前是“测试版”。最终它将取代http://referencesource.microsoft.com/。微软还承诺添加更多程序集的来源。

于 2014-02-26T15:35:28.563 回答
7

在 VS 2008 中,我能够调试 .Net 源代码,但在 VS2012 中,我安装了 .NET Reflector(VS 扩展),因此它会自动反编译并允许调试任何 .Net 代码。

另一个开源工具是 ilspy.net ,它将反编译的程序集保存为 C# 项目,您可以使用调试工具。

还有一些适用于 Windows 的调试工具,它们是 SDK 的一部分,但我没有尝试过:http: //msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx

于 2013-05-17T19:22:17.833 回答
2

这是一篇很好的文章,描述了如何配置 VS 符号服务器和 dotPeek 1.2 以从 VisualStudio 调试反编译代码:http: //blog.jetbrains.com/dotnet/2014/04/09/introducing-dotpeek-1-2-early- access-program 如果调试框架或其他编译代码是您的日常工作,我建议您从您使用的程序集中重建解决方案,这将节省调试器附加期间符号加载的时间。

于 2014-04-18T19:44:55.100 回答
1

1) PDB 文件不是最新的。尝试取消选中工具->选项->调试->常规->“要求源文件与原始版本完全匹配”

2)您通过将它的 dll 添加到您的引用而不是将项目添加为引用来引用您的另一个项目。尝试删除引用添加从“项目”选项卡添加对项目的新引用

你可以搜索谷歌。它提供的不仅仅是答案

于 2013-05-19T06:48:37.863 回答
1

过去,按照SymbolSource 的建议,我很幸运。

如果您将它与 Resharper 结合使用,您将能够按住 CTRL 键单击整个框架。

然而,MS 不发布其所有版本的二进制文件的代码由来已久这就是为什么调试经常不起作用的原因。

尽管如此,Resharper 在下载源代码方面似乎更灵活一些,如果不能,它会给你反汇编的源代码,但无法调试。请注意,JetBrains 将反编译源的调试视为dotPeek(Re# 附带的反编译器)的关键功能,因此在不久的将来可能会实现。

于 2013-05-22T12:24:20.160 回答