在良好的旧 Win2k 上,.NET Framework 的最高支持版本是 2.0。如果想运行现代 C# 应用程序(例如,使用 LINQ),Mono 框架可能是解决方案。不幸的是,尚不清楚 Mono 是否支持 Windows 2000。下载页面显示最新版本(3.0.1-beta)“适用于所有版本的 Windows XP、2003、Vista 和 Windows 7”,但安装程序显示的发行说明声称“此版本可在 Windows 2000 或更高版本上运行”。
作为快速测试,我尝试使用不同版本的 Mono(2.0、2.10.9、3.0.1-beta)在 Win2k 机器上编译并运行以下代码:
// Test.cs
using System;
using System.Linq;
public static class Test
{
public static void Main()
{
Console.WriteLine(Environment.Version);
int[] numbers1 = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var numbers2 = from number in numbers1 where number < 5 select number;
Func<int, int> negate = number => -1 * number;
foreach (var number in numbers2)
Console.WriteLine(negate(number));
}
}
我打开 Mono 命令提示符,将工作目录更改Test.cs
为mcs Test.cs
.
- 旧版本2.0工作,我只需要使用
gmcs
而不是mcs
. 我可以在 Mono 2.0 上成功运行可执行文件。(当我尝试在 .Net 2.0 上运行它时,我遇到了一个异常,正如我所料。) - 在2.10.9和3.0.1-beta版本的情况下, 什么都没有发生:没有创建 exe,也没有显示错误消息。这些版本适用于 Windows XP,我可以编译代码并运行可执行文件。
问题: Mono 是否仍支持 Windows 2000?Mono 在 2.0 和 3.0 之间发生了什么,这可以解释上面提到的编译问题?怎样才能使最新版本在 Win2k 上运行?