1. 程式人生 > >VS2008中檢視.NET原始碼的設定方法

VS2008中檢視.NET原始碼的設定方法

在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的原始碼)

111111111111111.gif

   (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操作了。

111111111111111.gif

    通過以上的設定後,在除錯程式的時候就可以進入框架的原始碼了。通過例子看一下,建立這個工程,並設定個斷點。執行程式到斷點停止時,到呼叫堆疊視窗(CTRL+ALT+C)右鍵單擊一個dll(如:System.Windows.Forms.dll),然後選擇“Load Symbols”,這樣會給System.Windows.Forms程式集載入符號。注意:如果在配置過程中採用了當時一次性下載了所有的symbols的話,這裡的Load Symbols可以省略不做。

111111111111111.gif

    現在可以檢視程式碼了。你可以Step In(F11)上面的的程式碼行,在第一次進入程式碼的時候,我們會顯示EULA,點選ACCEPT,然後這個原始碼就會下載下來,可以除錯.net框架原始碼了。

111111111111111.gif 

通過這種方式檢視的原始碼並非全部,這次釋出的版本中包含的名稱空間有:

◆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