mono 2.8.1 中和 csharp.exe 和 Mono.CSharp.dll 相关的 C# 源程序总共只有六十个左右,分布在以下目录中:
Mono.CSharp.dll 需要以下57个 C# 源文件:
这是 mcs/class/Mono.CSharp.dll.sources 文件的内容。注意在该文件中的目录分隔符原来是 Linux 操作系统的“/”,现在被我替换为 Windows 操作系统的“\”。
而 csharp.exe 只需要以下三个 C# 源文件:
这是 mcs/tools/csharp/csharp.exe.sources 文件的内容。然后,参照上一篇随笔,在 mcs/tools/csharp/repl.cs 文件第 59 行后加入以下一句:
Console.WriteLine(ex);
现在,编辑以下 mak.cmd 文件用来编译:
编译和运行结果如下:
这和上一篇随笔中的出错情况一样。现在让我们在 mcs/class/Mono.CSharp/Assembly/AssemblyInfo.cs 文件文件中加入以下语句:
[assembly: SecurityRules(SecurityRuleSet.Level1)]
然后重新编译,运行:
终于在 Windows 操作系统下实现了 C# 交互窗口,并且没有安装 mono,而是只需要 Mono.CSharp.dll 和 csharp.exe 两个文件就可以了。
此外,还可以将 Mono.CSharp.dll 加入到全局程序集缓存中(需要管理员权限):
这样之后再将 csharp.exe 放到 PATH 中的目录里,就可以随时随处运行 C# 交互窗口了。