现在的位置: 首页 > 综合 > 正文

VS2008中查看.NET源码的设置方法

2012年11月26日 ⁄ 综合 ⁄ 共 2047字 ⁄ 字号 评论关闭
在Visual Studio 2008中可以通过调试进入.NET Framework的源代码,从这个意义上说,.NET Framework是开放部分源代码了,但现在只支持调试模式下进入源代码。而其,这个功能在Visual Studio 2008 Express版本中不能支持。注意,所有的源代码都是从指定的远程服务器上按需下载的,而不是VS2008安装后就自带的。

    要想使用这个功能,需要额外的配置一下,因为默认配置中VS2008是不开启这个功能的,那么如何配置呢?在Scott的Blog中有专门的说明,但是他的源代码服务器URL给错了。收听了一下他们的采访视频,确定了正确配置的方式,如下:
    在VS2008中,菜单Tools->Options后,
   (1)如果你在VB Profile环境下运行,需要将左下角的Show All Settings勾选上(否则将不会出现Debugging选项),然后选择Debugging->General。
   (2)如果你不是在VB Profile下,则直接选择Debugging->General。
   (3)去掉“Enable Just My Code”的勾选。代表不仅仅只是调试我们自己开发的代码(言外之意也要调试.NET Framework的源代码)
   (4)打开“Enable Source Server Support”勾选。代表开启源代码服务器的支持(言外之意在需要的时候去源码服务器获取.NET Framwork的源代码
    (5)选择“Debugging->Symbols”页,然后设置符号下载URL和缓存位置。设置为http://referencesource.microsoft.com/symbols 。
   (6)设置符号的本地缓存位置。如:C:/temp/symbols。注意确保你的Windows账户能读写这个位置。
   (7)打开“Search the above locations only when symbols are loaded manually”选项。表明只有当symbols被手动加载得情况下才使用。在这种模式下,第一次进入需要进入.NET Framework中的某一个dll时,需要手动执行Load Symbols操作(注:每个dll只有一次,之后它就被缓存到(6)所设置的本地缓存中了)。如果嫌麻烦,这里也提供了一个简单的方法,即勾选“Load symbols using the updated setting when this dialog is closed”,表明当这个设置窗口关闭的时候,立即下载所有的symbols(这将需要几分钟~几十分钟,根据网速决定),这样就不用以后再手动Load symbols操作了。
    通过以上的设置后,在调试程序的时候就可以进入框架的源代码了。通过例子看一下,创建这个工程,并设置个断点。运行程序到断点停止时,到调用堆栈窗口(CTRL+ALT+C)右键单击一个dll(如:System.Windows.Forms.dll),然后选择“Load Symbols”,这样会给System.Windows.Forms程序集加载符号。注意:如果在配置过程中采用了当时一次性下载了所有的symbols的话,这里的Load Symbols可以省略不做。
    现在可以查看代码了。你可以Step In(F11)上面的的代码行,在第一次进入代码的时候,我们会显示EULA,点击ACCEPT,然后这个源代码就会下载下来,可以调试.net框架源代码了。

    通过这种方式查看的源代码并非全部,这次发布的版本中包含的命名空间有:

◆System
◆System.CodeDom
◆System.Collections
◆System.ComponentModel
◆System.Data
◆System.Diagnostics
◆System.Drawing
◆System.Globalization
◆System.IO
◆System.Net
◆System.Reflection
◆System.Runtime
◆System.Security
◆System.Text
◆System.Threading
◆System.Web
◆System.Web.Extensions
◆System.Windows
◆System.Windows.Forms
◆System.Xml

 

错误修正:

以中断模式或运行模式显示“调用堆栈”窗口

  • 在“调试”菜单中选择“窗口”,然后单击“调用堆栈”。

  • 或者Ctrl+D,

在得到微软Shawn Burke的同意后,Kerem Kusmezer和John Robbins创建了一个工具,它将整体下载.NET源码。这一方式最大的好处就是消除了在调试进行的过程中因下载源码而导致意外暂停的问题,而且,它还有另外一个有趣的潜在价值。

一旦通过.NET Mass Downloader完成源码的下载,开发者们就可以通过配置VS 2005,以非常类似的方法在VS 2005中使用这些源码。

抱歉!评论已关闭.