Mono我不必多说,虽然很多人并不看好它的前途,但他的定位使得他对外界的依赖很少。
Mono现在可以完美的支持基于.NET1.1以下的.NET程序,C#2.0的语言特性他也已经具备了,只差那庞大的Framework还有很多没有实现,尤其是System.Windows.Forms下的那些新式的Controls,所以要运行.NET2.0的程序,则还需时日。
Mono可以不用安装就运行,看看他的安装日志就清楚。而且mono真的很轻量级,运行一个Hello World on Console只需要一个JIT和mscorlib.dll就可以了。
我就以此为例来说说怎样包装一个不依赖.NET Framework的解压缩就能运行的Hello World。
开始前要准备一下:安装mono,下面要从它那里提点文件,然后再写一个命令行模式的HelloWorld.exe(用visual studio编译的也可以)。
新建一个文件夹,比如<HelloWorld>(注:新建的时候不要建在中文名的文件夹下),然后在他下面再新建一个文件夹<bin>,从mono安装文件夹下的<bin>里copy以下文件:
Mono.exe
Mono-1.dll
Libglib-2.0-0.dll
Libgmodule-2.0-0.dll
Libgthread-2.0-0.dll
Iconv.dll
Intl.dll
我安装的mono是 1.1.13 版的,已经跨进了2.0时代,所以版本号都跟着2.0。如果有变,那么他提示缺失什么文件你就给他什么文件。
运行环境就这么搭好了,接下来要把framework放进去,当然不用全放,helloworld只要放mscorlib.dll就可以了:
把<MONO_PATH/lib/mono/2.0/mscorlib.dll> copy到 <HelloWorld/lib/mono/2.0/mscorlib.dll>
最后,把你的HelloWorld.exe copy到<HelloWorld>下,再放一个run.bat,写上bin/mono helloworld.exe,双击run.bat,你就能看到通过mono运行的helloworld了。
而且通过mono,你的helloworld还可以跨平台运行。
接下来你也应该知道怎样运行一个WinForm版的HelloWorld了吧。先别急,为了让你少走弯路,我现说说注意事项。你当然可以通过mono自带的编译器来编译程序,但如果你想用visual studio编译的话,你要把所有的应用都替换成mono的。比方说把System.Windows.Forms换成<MONO_PATH/lib/mono/2.0/System.Windows.Forms>等等。。。然后才能在mono下正常运行。
接下来的事情就留着各位慢慢去探索,你一定会发现mono是一只可爱的猴子。也望各位今后多多支持mono,人家能有今天也很不容易了。