当前位置:编程学习 > Delphi >>

C#程序如何编译生成独立的不依赖.Net运行环境的可执行程序。类似Delphi生成的EXE文件。要求大小要非常小。

答案:飞信的安装目录下,Fetion.exe仅仅是一个小小的判断程序,作用是判断系统中是否安装了.Net2.0以上版本。如果安装了,则直接启动飞信主程序,如果没有,则用.Net虚拟机启动程序。 FetionFx.exe才是真正的飞信主程序。 基本的演示: 飞信安装目录下有个文件夹VMDotNet,就是所谓的虚拟机了,进去,找到FetionVM.exe,这个就是虚拟机的主程序。 由于飞信是用C#2.0编写的,所以C#2.0编写的程序可以直接使用这个虚拟机脱离框架运行而不用做任何额外的工作。方法是用FetionVM.exe运行要运行的程序。 有条件可以这样试验一下虚拟机的作用:把VMDotNet文件夹整个拷贝到一个没有安装.Net的机器上,然后把一个C#写的程序ABC.exe也拷过去。ABC.exe显然由于没有.Net环境是不能运行的。这时候可以把它拖动到FetionVM.exe的图标上,松开鼠标,怎么样,运行了吧(虽然出现窗口慢了些)。 其他: VMDotNet中的System文件夹内是需要的框架DLL,在程序中引用了哪些,就向这个文件夹中拷入哪些。比如System.Windows.Forms.dll 另外,除了C#,Visual Basic .Net 2005(VB.Net 2008编写的针对2.0框架的一样)也可以用它脱离框架运行程序,这时候System内需增加下面几个文件: System.Runtime.Remoting.dll System.Messaging.dll Microsoft.VisualBasic.dll Culture.dll 同时有几个以前的文件也可以不要了~可以自己再精简一下试试。
其他:你已编译的话,在那个程序目录下,有个叫Debug的文件夹,在里面有一个可执行文件,那个就是你说的exe文件,双击它可以直接运行。 如果说要脱离.net 那肯定是要自带的 也就是说exe里面的内核有 那不可能非常小的 至少10M 
建议用其它语言 如“易语言”做简单的任务是可以的 不可能 .net环境下生成的托管代码,不可能脱离.net环境而运行,C++可用VS编写非托管代码,而C#却不行,只能是托管的,但可以调用其他语言(如C/C++)编写的非托管代码(如API),希望回答对你有用! 

上一个:我找了个数据库的课设,用数据库和delphi做的,但是不懂用,谁能帮忙?
下一个:delphi7中让edit里显示select count(student_sno) as 大于九十分的人数 from score where total_score>90

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,