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

前幾天在 [Reference Source Code Center Team Blog](https://learn.microsoft.com/en-us/archive/blogs/rscc) 已經公告 .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 的原始碼，可以從[這裡](http://referencesource.microsoft.com/serversetup.aspx)得知如何設定，以下是我設定的心得分享：

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](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/539e48ff40f9a2e8717d-image_thumb.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/a39095094f29e96a9aab-image_2.png)

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

先新增 Symbol file locations 到 [http://referencesource.microsoft.com/symbols](http://referencesource.microsoft.com/symbols)

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

[![Microsoft Visual Studio - Tools - Options - Debugging - Symbols](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/7d07a76d52da5ae1ec06-image_thumb_2.png)](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/20c6f9e7180a920c5c0f-image_6.png)

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

![Microsoft Visual Studio - Security Alert](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/79c7981c6656fb0431ec-image17.png)

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

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

**相關連結**

-   [.NET Framework 3.5 SP1 Sources are available!](http://blogs.msdn.com/rscc/archive/2008/08/28/net-framework-3-5-sp1-sources-are-available.aspx)
-   [Reference Source Code Center Team Blog](https://learn.microsoft.com/en-us/archive/blogs/rscc)
