编程:Mono让C#程序脱离.net Framework运行

时间:2023-02-10 14:39:37

1、mono项目简介

Mono是一个由Novell公司(由Ximian发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器、一个CLR的运行时和一组类库,并实现了 ADO.NET和ASP.NET,能够使得开发人员在Linux用C#开发程序。)主持的项目。该项目的目标是创建一系列符合标准ECMA (Ecma-334和Ecma-335)的.Net 工具,包括C #编译器和共同语言(CL 即 Common Language)执行平台。与微软的.Net不同, Mono项目不仅可以运行于Windows系统内,还可以运行于Linux、 FreeBSD、 Unix、 Mac OS X和Solaris。

最新2.8版主要的新特性:完整支持C# 4.0语言(Mono 2.6提供了初步支持);新的更高效的垃圾收集实现;整合了微软发布的多个开源.NET库——包括Dynamic Language Runtime和Managed Extensibility Framework;向前时间(AOT)编译支持x86,AOT编译能在编译时将.NET中间媒介代码直接转换为本地代码;另一个引入注目的特性是支持LLVM。

现在专门为Android提供的MONO也推出了,允许开发者在Android和Windows Mobile以及iOS所有平台共享代码,这将为开发者们节省更多的开发时间,让他们为游戏的移植不再忧心,而是更能关注游戏的品质了。

Android版Mono包括:

* Core Mono Runtime (核心Mono运行时)

* Bindings for native Android APIs (原生Android应用程序接口绑定)

* Visual Studio 2010 plugin (Visual Studio 2010 插件)

* An SDK containing relevant tools to build, debug and deploy your applications (包含有建立、调试及部署应用相关工具的SDK)

项目地址:http://www.mono-project.com/

2、让C#脱离框架运行

C#程序脱离框架运行,即让用C#语言写的托管代码,运行起来不需要.net Framework的支持。

这样就可以不用安装庞大的.net framework(主要是Windows XP系统),其实就是换mono的公共语言运行时来使用。这样做的好处是体积小,发布免安装。

首先,您需要下载mono的最新版(下载)并安装。

①用Visual Studio创建一个Windows应用程序,假设叫做WinApp,并添加一个按钮。

②编译此项目,得到一个WinApp.exe文件。

③自己建立一个文件夹WinApp。

④将mono安装文件夹中的bin和lib子文件夹中需要的文件拷贝至刚才建立的那两个文件夹。

在bin目录下,保留以下文件,其他的删除即可

编程:Mono让C#程序脱离.net Framework运行

然后打开lib文件夹,在2.0文件夹下保留Accessibility.dll,mscorlib.dll,mscorlib.dll.mdb,然后在GAC文件夹里面保留以下文件夹:

编程:Mono让C#程序脱离.net Framework运行

⑤将需要运行的exe文件放入WinApp文件夹。

⑥使用bat批处理来调用:

bin\mono.exe  WinApp.exe

 

或者用VC++写一个引导程序:

int main() 

     WinExec("bin\mono.exe WinApp.exe",SW_SHOWNORMAL); 
     return 0; 
}