c#做的Winform程序如何在不安装Framework的情况下运行?求答案

c#做的Winform程序如何在不安装Framework的情况下运行?求答案,第1张

现成的工具有Xenocodenbsp的postbuidle或者vas,还有Salamandernbsp.NETnbspLinker。另外还有MaxToCodenbsp作者以前做的frameworknbsplinker,以及一些支持注册表模拟和文件模拟的打包工具桐并molebox,thinstall等。nbspnbspXenocode的是使用了一个虚拟机环境,模拟框架需要的注册表信息和文件信息。Xenocode号称的生成native代码功能实际上就是指的这个功能。我测试了几个程序打包,兼容性似乎不怎么好,不知道是不是因为机器上已经安装了框架的原因。nbspnbspJason做的frameworknbsplinker以前我也使用过,他实际上蔽轮蠢是利用了Remotesoft的内核文件,然后自己实现了一个loader。好像是使用的早期的内核文件,兼容性也不太好。nbspnbspSalamandernbsp.NetnbspLinkernbsp,Remotesoft的一个产品,没有可以下载的,但是其兼容性似乎很不错。移动的飞信软件就利用了它的核心。某网友的方法似乎是利用remotesoft的核心和飞信的框架,因为他并没有免费公开方法,从他给出的样例可以看到有remotesoft的核心文件以及飞信的框架程序。这里要介绍的方法是直接利用飞信的框架来实现脱离nbsp.Netnbspframework运行。nbspnbsp首先下载一个飞信的程序安装,在安装目录中会有VMDotNetnbsp目录,这个就是.Net框架虚拟环境需要的文件,直接把整个目录提取出来。nbspnbsp如何利用这个虚拟环境运行自己的nbsp.Netnbsp程序呢?很简单,一个命令行搞定。在nbspVMDotNetnbsp目录里面会找到一个nbspFetionVM.exenbsp,这个是虚拟环境的loader。nbspnbsp使用方法:nbspnbspFetionVM.exenbsppathtoyoureexe。就是直接把你的nbsp.Netnbsp程序作为命令行参数传递给FetionVM.exenbsp就可以在这个虚拟环境中执行你的.net程序了。nbspnbsp最好再自己写一个启动程序,首先检查系统是否安装了.Net框架,如果有直接运行,没有调用虚拟环境运行。nbspnbsp这个启动程序飞信也有,如果不想自己写就直接拿飞信安装目录中的宏陪nbspFeition.exe,但是这样的话你自己的.Net程序的名字必须叫nbspFeitionFX.exenbsp。把它和Feition.exenbsp放在同一目录下,直接执行nbspFeition.exenbsp即可。另外,如果你对.Net程序使用了加密保护,需要注意一下,目前市面上的大部分.Net加密工具加密后的程序集不能在这个虚拟环境中运行的。 查看原帖>>

1. 如果单线程运行的话,显雀亩示窗口需要Show不能用ShowDialog,因为ShowDialog时调用被阻塞了,你没有机会调用你的窗口方法

2. 如猜橘果一定要用ShowDialog的话那么另开一个线程显穗岁团示你的窗口,然后在当前线程中调用窗口方式,或是在当前线程显示窗口,然后另开一个线程调用窗口方法,这个要麻烦一些,而且要注意跨线程调用窗口时要注意进行InvokeRequired查询,还有在线程中显示窗口要注意可能需要设置线程单元格式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12213353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存