zoukankan      html  css  js  c++  java
  • 用Mono构造最精简的.net运行环境

    本文的目的是使用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(尚未成功,有一个文件还没有搞定)

  • 相关阅读:
    MVC3 验证码
    说说.NET反编译工具
    HTTP协议学习
    Spring Web Flow 的优缺点
    Java CLASSPATH 引发的问题
    MySQL 高级
    Java Policy
    AJAX
    数据结构与算法学习资源
    C#学习资源
  • 原文地址:https://www.cnblogs.com/zhwl/p/2814828.html
Copyright © 2011-2022 走看看