用mono构造最精简的.net运行环境

来源:互联网 发布:中国乐队那么少 知乎 编辑:程序博客网 时间:2024/05/20 00:11

本文的目的是使用mono构造一个最小的.net运行环境。

构造一个最小.net环境的好处何在?

第一,可以在没有.net运行库的机器上发布.net程序。

第二,研究最小.net环境,可以将.net用于一些嵌入式操作系统。提高开发效率。

 

尝试的过程,就不描述了。直接发布结果。

 

1.最基本的文件依赖

bin/mono.exe

bin/mono-20.dll

lib/mono/2.0/mscorlib.dll

 

 

这三个文件是最基本的。只要有这三个文件,就可以运行控制台下的helloWorld。

可以访问基本的IO。

 

2.网络程序的依赖

lib/mono/gac/System/2.0.0.0__b77a5c561934e089/System.dll

lib/mono/gac/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

lib/mono/gac/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll

有这三个文件再加上基本的依赖(共6个文件),就可以使用TcpClient和Socket类。

 

3.Winform程序的基本依赖

lib/mono/gac/System/2.0.0.0__b77a5c561934e089/System.dll

lib/mono/gac/Mono.Posix/2.0.0.0__0738eb9f132ed756/Mono.Posix.dll

lib/mono/gac/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll

lib/mono/gac/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

lib/mono/gac/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

有这五个文件,加上基本的的三个文件,就可以运行基本的Winform程序

 

如果使用了其他的类,少什么文件就加什么文件就行了。

只要找到上面的文件列表中的文件,在保持原有的目录结构的前提下,把发布的目录拷贝,然后在bin目录下执行mono appname.exe就可以运行程序了。

类似2.0.0.0__b77a5c561934e089这样的目录,实际上是这个dll的版本号。这个与mono的版本有关。在不同的版本中不一样。但是前面的目录是一样的。比如System的目录下,一定有System.dll文件,可能不止一个,我们只需要2.0.0.0开头的目录下的文件。

 

 

Linux:

1.基本

usr/bin/mono.exe

usr/lib/mono/2.0/mscorlib.dll

这两个文件就可以搞定helloworld.

 

2.网络(与windows上相同)

usr/lib/mono/gac/System/2.0.0.0__b77a5c561934e089/System.dll

usr/lib/mono/gac/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

usr/lib/mono/gac/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll

 

3.winform(尚未成功,有一个文件还没有搞定)

 

 

 

 

 

原创粉丝点击