C#程序如何编译生成独立的不依赖.Net运行环境的可执行程序。类似Delphi生成的EXE文件。要求大小要非常小。
6个回答
展开全部
飞信的安装目录下,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
同时有几个以前的文件也可以不要了~可以自己再精简一下试试。
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),希望回答对你有用!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1楼说的那个 不行 因为如果那样的话 电脑本身没装 .Net Framework 2.0的话一样运行不了 暂时还脱离不了.Net 环境 因为 咱们写程序 用的全是 微软的一些类 如果脱离了 就没有这些类 自然会报错 现在网上 会有第三方的东西 让他脱离 你去看看 希望能帮助你
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询