微軟發佈了CLR 2.0的源碼,這個源碼是能夠直接在freebsd和windows環境下編譯及運行的,請在微軟shared source cli(http://www.microsoft.com/en-us/download/details.aspx?id=4917)連接處下載,並用7zip等工具解壓,之後簡稱sscli – 即Shared Source CLI。html
解壓後,根目錄下有readfirst.html文件,裏面說明了該開源版本里包含的功能列表:windows
編譯和運行代碼函數
要編譯clr源碼的話,須要知足下面條件:工具
另外,還有一個準備步驟,這個問題在中文版的Windows系統中都會遇到,因爲Rotor中部分源代碼以ANSI字符存放,其中中含有在936 Code Page,也就是Simplified Chinese GBK擴展字符集下沒法解析的字符,在Build的時候VC編譯器CL會報warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss。同時在Build的時候因爲打開了/WX開關,任何warning都會被看成是error而直接致使部分編譯失敗。解決方法有:ui
安裝好上面的軟件並將sscli源碼解壓以後,打開「Visual Studio 2005 Command Prompt」窗口,切換到sscli的根目錄,下面假設根目錄路徑是:c:\sscli。依次執行下面的命令:編碼
cd /d c:sscli rem 設置當前編譯和運行環境爲調試環境 env debug rem 編譯全部的程序 buildall
編譯成功以後,寫一個簡單的C#文件,以下表:debug
using System; public class Hello { public static void Main() { Console.WriteLine("Hello, sscli"); } }
在編譯CLR源碼的控制檯運行下面的命令編譯和執行C#程序(前面執行的 env debug
命令,已經自動設置好PATH環境變量,C#編譯器csc.exe程序指向的是咱們編譯好的程序):調試
注意code