The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

.NET Framework 3.5 SP1 原始碼已開放參考檢視

前幾天在 Reference Source Code Center Team Blog 已經公告 .NET Framework 3.5 SP1 的部分原始碼已經掛到 Reference Source Code Center (RSCC) 伺服器了,這代表各位可以在 Visual Studio 2008 中針對這些已開放的組件進行原始碼偵錯,另一方面也可以從 .Net Framework Library 學習到更深的技術細節。

第一波已開放原始碼的組件有如下項目,未來還會針對 WPF 相關的組件也開放原始碼:

  • mscorlib.dll
  • Microsoft.Visualbasic.dll
  • System.dll
  • System.Web.Routing.dll
  • System.Data.dll
  • System.ComponentModel.DataAnnotations.dll
  • system.Drawing.dll
  • System.Web.Abstractions.dll
  • System.Web.dll
  • System.Web.DynamicData.Design.dll
  • System.Web.Extensions.dll
  • System.Web.DynamicData.dll
  • System.Windows.Forms.dll
  • System.Web.Extensions.Design.dll
  • System.Xml.dll

若你要在 Visual Studio 2008 中追蹤 .NET Framework 3.5 SP1 的原始碼,可以從這裡得知如何設定,以下是我設定的心得分享:

1. 首先,你的 Visual Studio 2008 必須先升級至 SP1

2. 開啟選項視窗,選單 Tools / Options

3. 找到 Debugging / General 節點��定,然後對以下兩個設定做出改變:

    * 將 Enable Just My Code (Managed Only) 取消選取

    * 將 Enable source server support 勾選

Microsoft Visual Studio - Tools - Options - Debugging - General

4. 然後再切換到 Debugging / Symbols 設定

先新增 Symbol file locations 到 http://referencesource.microsoft.com/symbols

然後再設定動態下載的 Symbols 資料要存放的位置,你可以設定任何路徑,例如:G:\Symbols

Microsoft Visual Studio - Tools - Options - Debugging - Symbols

5. 最後,會出現一個 Security Alert 問題要不要啟用 Source Server 功能,回答 Yes 即可。

Microsoft Visual Studio - Security Alert

若你要測試有沒有設定成功,可以用以下步驟:

  1. 先在任意專案中設置中斷點(breaking point)
  2. 然後按下 F5 鍵進入偵錯模式,但由於第一次使用會動態下載所有該專案會用到的組件 Symbol 檔(包括原始檔),所以時間會花比較長,我大約下載了 30 分鐘吧,請各位耐心等待!
  3. 之後就可以用單步執行(F10 / F11)進行原始碼查,但第一次用的時候會先看到 End User License Agreement (EULA) ,按下 Accept 即可。

    End User License Agreement (EULA) 

相關連結