我有.Net框架v4.0.30319 SP1Rel和visual studio 2010 v10.0.40219.1 SP1Rel (数据取自关于VS中的对话框)。
http://referencesource.microsoft.com/netframework.aspx在这里提供了.Net 4.0,但不确定是哪个具体版本,也不确定它是否与我的设置兼容。我确实在一两个月前下载了源代码,但我无法进入框架源代码(无源可用消息)。我当时到处看了看,这似乎是因为VS (可能还有安装的框架二进制文件)的更新取代了源版本。
在我再次尝试下载之前,请确认一下源码现在是否与最新版本一致并兼容。如果没有,有没有替代工具(也许是第三方),可以进入源代码?
编辑:好的,我刚刚看到了这个http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/thread/41388c7b-582b-4e3f-8178-3d38a3c99639,这是否表明你不能使用当前的源代码?
发布于 2012-03-18 02:57:57
为了回答第二部分,专业版的.NET Reflector允许您在调试代码时单步执行没有源代码(包括.NET框架)的程序集。它将自动反编译程序集,并为您提供对反编译代码的逐行调试支持。
最新版本的Resharper也可能提供类似的功能。
当然,在使用引用源码时,您不会得到很好的变量名和注释。
发布于 2012-09-15 05:20:49
在进行了所有适当的设置后,可以使用以下解决方法。解决方法本质上是查找导致dll更改的安全更新,然后将其删除。这有一个明显的缺点,那就是在您的机器上删除这些安全更新。
解决方法
调试模块确定要调试到哪个中(例如,System.Windows.Forms.dll)
site:support.microsoft.com/kb System.Windows.Forms.dll 4.0.30319.269http://support.microsoft.com/kb/2604121,所以dll,是我们感兴趣的。dll转到控制面板->程序和功能,并点击“查看列出KB编号的已安装更新”(您可以使用右上角box).http://support.microsoft.com/kb/2604121返回到它的RTMRel版本或SP版本。例如,对于System.Windows.Forms.dll,我必须删除KB2686827、KB2604121、KB2518870,然后才能将其恢复为RTMRel版本。您需要对.NET框架中需要调试的每个动态链接库执行此操作。
完成后,在.net源代码中设置断点(例如,转到断点选项卡,选择New->Break at Function,然后输入System.Windows.Forms.Form.Form)或单步执行该dll中的某个.net方法。
发布于 2014-02-26 23:40:35
调试.NET框架源代码中断了很长一段时间。请参阅VisualStudio UserVoice Allow developers to step through .NET Framework sources上的相关建议。好消息:它终于被修复了!请参阅以下来自Microsoft的博客文章:
简而言之:
http://referencesource-beta.microsoft.com/
它目前是“测试版”。最终它将取代http://referencesource.microsoft.com/。微软还承诺增加更多程序集的源代码。
https://stackoverflow.com/questions/9752807
复制相似问题