在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,C this