作者:小生、我怕怕
网址:http://www.apkbank.net
http://www.17zouguo.net
我觉的MS的.net方案其实很不错。C#呢,用现在流行的话来说“很给力”!
但是.net版本众多。而且.NET Framework框架很大。拖着一个大大的.net Framework总是让人很郁闷。
我也碰到了这个让人郁闷的问题。
在网上找呀找呀。找到另一个.NET Framework 替代方案。Mono。
下载地址为:http://www.go-mono.com/mono-downloads/download.html
Mono2.10.2版本支持.net 2.0至4.0版本。
下载回来后安装一下,我傻了居然有336M。而且Mono的居然方式是命令行的。仍然让人很郁闷。
算了,既然安装了。找找资料吧。
终于看到了前人的工作结晶。
Mono运行C#程序所要的库资源其实不多。
只要C:\Program Files\Mono-2.10.2\bin目录下的。(以下均以C:\Program Files\Mono-2.10.2目录为根目录)
mono.exe,mono-2.0.dll
lib\mono\.net版本号\mscorlib.dll。我这里用的是.net 2.0版本。
lib\mono\gac\目录下的必要库文件。WinForm程序只要这5个库就行了。
每个库文件下,又有自己的.net版本号。如果用的是.net 2.0那么4.0.0.0那个目录就可以删除,如果你想问为什么没有3.0、3.5的库。答案是3.0和3.5用的是2.0的库。而1.0的库由于年代久远,Mono2已经不支持了。如果需要的话,可以下载Mono早期的版本。
另外我发现库文件下,有同名的.mdb文件。
那个.mdb文件删除掉对程序没什么影响。所以通通删除掉。
经过层层删除,最后剩下的那几个文件,加起来也就8M多点。而程序一点问题也没有。完美运行!
发行软件的时候用RAR压缩一下,程序只有3M多。很完美了!
可是我怎么知道。。我的程序具体要用到哪些库呢?
答案是:不知道。去记程序要用到哪些库太累了。我才不会去记呢。我有一个偷懒的办法。新建一个文件夹,先将不变的文件放好。bin目录下的mono.exe,mono-2.0.dll,lib\mono\.net版本号\mscorlib.dll。最后将Mono下lib\mono\gac中所有的库文件拷贝过来。运行编译好的C#程序。现在可以开始疯狂的删除了,碰到不能删除的文件,剩下的就是我们的程序要用的库了。此方法简单高效,百试不爽。
但是接下来还有个问题,Mono那个讨厌的命令行。还有如果人家电脑上装了.net库呢?用MS自家的.net不是更好么?于是我参考Mono官网,用C和windows api写了一个.net的引导程序。可以根据用设定来选择.net版本,如果客户电脑已经安装用户指定版本,则优先使用MS的.net,如果不存在则用Mono引导程序。
这个引导程序使用config.ini做为配置文件。
C#_Version=2.0 //.net版本号,共有4个值:2.0、3.5、4.0C、4.0F
C#_AppName=MyBooks.exe //预启动的应用程序名称
这个引导程序,在32位XP下使用VS 2008编译。因为是用windows api编写,没有额外的库。所以理论上32位的系统应当都能使用,64位的没试过。这个引导程序测试.net 2.0项目和.net 4.0项目都没问题。这个程序直接调用了mono-2.0.dll。所以Mono.exe也就没用了。下面给出我的测试项目,直接运行monologin.exe即可。效果我还是很满意的。同时欢迎交流!
附件下载:
c#引导项目.rar 3.17MB
- 大小: 5.9 KB
- 大小: 4.6 KB
- 大小: 6.3 KB
- 大小: 7.5 KB
- 大小: 6.9 KB
- 大小: 7.3 KB
分享到:
相关推荐
.Net 脱离.Net framework 最好方法
C#使用飞信虚拟机脱离.net framework及win32引导程序
刚学C#时就一直想找到一种方法可以让.Net程序在未安装framework的电脑上运行,但一直没有找到真正可用的。虽然有些公司发布了可以将.net代码编译成navtive代码以脱离.net环境运行,如Remotesoft DOTNET Linker,...
这里要介绍的方法是直接利用飞信的框架来实现脱离 .Net framework运行。 首先下载一个飞信的程序安装。在安装目录中会有 VMDotNet 目录。这个就是.Net框架虚拟环境需要的文件。 直接把整个目录提取出来。 如何利用...
C#脱离.NET环境,飞信虚拟机,.net framework 2.0
从四年前刚学C#时就一直想找到一种方法可以让.Net程序在未安装framework的电脑上运行,但一直没有找到真正可用的。虽然有些公司发布了可以将.net代码编译成navtive代码以脱离.net环境运行,如Remotesoft DOTNET ...
C#程序脱离.net框架的多种方法与应用一步之遥
收藏精品 C#开发的程序都需要他支持 C#写的程序 脱离.net framework 运行
为了让.Net程序脱离.Net Framework框架运行我试了很多方法,网上说的基本都试过了,最效果都不太理想,最后我还是选择了现在比较流行的软件飞信中带的VMDotNet,也就是所谓的.NET FRAMEWORK虚拟机吧。相信有很多人也...
那个可以让你的程序脱离框架运行,已成功试验了。这里要介绍的方法是直接利用飞信的框架来实现脱离 .Net framework运行。 这里的方法可以直接利用飞信虚拟机,不需要再写代码直接可以运行你的C#程序。 二、飞信...
在APP文件夹下有一个名为9527.exe的程序,这个是C#真正的“串口工具.exe”,而主目录下的串口工具.exe只是一个Loader程序,它运行后首先判断电脑上有没有安装framework,若有,则直接启动APP下的9527.exe程序;...
C# 对Excel编程所需组件,脱离对office软件的依赖 包含4个 Npoi 组件 和 1个 ICSharpCode 组件
这几天看了很多关于脱离框架运行C#程序的文章,千篇一律,都是讲飞信方案的,此方案涉及一些法律问题,只能自己研究一下,后来用google美国网站搜了一把,看了些文章,无意中发现mono,又用mono关键字到google中国搜...
2、脱离.net framework运行,再也不用为使用一个很小的C#软件而去安装20多M的框架了。 (虽然目前仍有11.5M,但比起.net framework那22M来说还是小了一 半) 2010.1.31日更新说明: 1、优化界面圆角弧度,使界面...
2、脱离.net framework运行,再也不用为使用一个很小的C#软件而去安装20多M的框架了。 2010.1.25日更新: 1、优化界面圆角弧度,使界面圆角弧度更自然、更美观 2、更换新新LOGO 下载连接已经更新为新版。由于只是...
winform程序可以通过使用Mono 3.2.3 在windowsXP环境中脱离 .net framework 4.0 运行,经过裁剪后,整体的运行环境大约在20M左右,压缩后会更小
2、脱离.net framework运行,再也不用为使用一个很小的C#软件而去安装20多M的框架了。 2010.1.25日更新: 1、优化界面圆角弧度,使界面圆角弧度更自然、更美观 2、更换新新LOGO 下载连接已经更新为新版。由于只是...