如何利用mono执行.net程式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用mono执行.net程式相关的知识,希望对你有一定的参考价值。
使用mono来达到脱离.NET框架的效果,可以跨平台。例子:使用MONO来脱离框架并且跨平台。注:测试结果显示,使用MONO启动.NET程序速度是最快的。
首先到MONO的官方网站下载源代码或者最新版本,然后安装,我用的是2.2版本
为了方便各位朋友试验,我提供我本次试验的MONO版本2.2 :
下载地址:
安装完毕,打开目录,找到两个子目录,名字分别是bin,lib ,然后复制到另外一个目录里面去【因为安装的时候默认安装在C盘的】然后把你的.net开发的程序也复制到这个目录里面去;假设这个目录名字叫做VM,那么你的这个文件夹里应该有个最少三个文件,一个是bin文件夹,一个是lib文件夹,还有一个就是你写的.net程序了。
然后可以用C++编写一个引导程序用来调用你的.NET程序;贴个简单的代码吧:
int main()WinExec("bin\\mono.exe 你的应用程序.exe",SW_SHOWNORMAL);return 0;当然,为了方便,你可以自己在逻辑里面判断一下,机器里安装的是.NET的哪个版本?如果版本低了,就调用MONO来执行,如果匹配,就不调用MONO了。
【这个例子只是支持简单的WINFORM和数据库访问,WEBSERVICE的,在文章末尾】
如果按照我说的一路操作,肯定是可以运行的了,但是你会发现,现在你的.NET程序是一个绿色软件,但是他所在的目录下lib,或者是bin文件夹的大小是非常恐怖的。。。有300M以上的大小,这岂不是和我们的想法冲突了?当然不是;我们来精简目录吧:
在bin目录下,保留以下文件,其他的删除即可
然后打开lib文件夹,在2.0文件夹下保留Accessibility.dll,mscorlib.dll,mscorlib.dll.mdb,然后在GAC文件夹里面保留以下文件夹【下图中的类库全部保留,最好不要删除】:
这样,整个目录就精简的差不多了,当然,你可以根据自己的需要定制需要的各种类库。然后打包即可,以我本人机器为例,压缩后的文件是9.8M,比.NET 2.0的框架小了很多,但是比飞信的那个虚拟机还是大了一些;换个角度来看,用mono不涉及版权问题,也可以调用各种数据库,我本机测试操作的是SQL SERVER 2005数据库,一切正常。让你的.NET程序也跨平台吧!只有MONO能做到这一点。
本文是引用别人的,这里看应该会好点,引用地址:
h……t——t——p——:——//……hi.baidu.com/44498/item/bacb9ad1e0b14a2d39f6f7d8 主要现在不能写链接否则要申诉。 参考技术A 手机安装一个MONO运行环境的软件就可以了,它可以把.NET代码解释为JAVA语言格式的或者ios格式的 参考技术B 网上有教程,mono是linux上的.net运行环境得去Linux上用
以上是关于如何利用mono执行.net程式的主要内容,如果未能解决你的问题,请参考以下文章
如何检测正在使用哪个 .NET 运行时(MS 与 Mono)?
嵌入式 Mono:如何在不同线程上使用“mono_runtime_invoke”
如何在 Mono 上将 Linq 与 MySql 数据库一起使用?