在好的旧Win2k,the highest supported version of the .NET Framework is 2.0.如果想运行现代C#应用程序(例如,使用LINQ),Mono Framework可能是解决方案.不幸的是,目前尚不清楚Mono是否支持Windows 2000.
Download page表示最新版本(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,我可以编译代码并运行可执行文件.
问题:
Windows 2000仍然支持Mono吗?版本2.0和3.0之间的Mono发生了什么,这可以解释上面提到的编译问题?如何才能使最新版本在Win2k上运行?