微软发布了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