简单方法打包.net程序集脱离framework

探讨了使用Monogame进行游戏开发时,如何使.NET程序脱离framework独立发布的方法,包括直接使用MONO运行时、采用mono官方方案boundle、借助第三方打包工具等,并分享了一种懒人方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近业余捣鼓monogame,自然而然就关注到了.net程序脱离framework发布的问题上了,

度娘,谷歌娘 都经过一番查找,无非分为如下几类方法:

1、直接使用mono运行时,附带 bin、lib文件夹,删去不必要的文件,缺点是需要写一个引导器或者批处理之类的工具,通过mono.exe或monow.exe启动

2、采用mono官方方案boundle,相当于写了一个简单exe内嵌mono虚拟机,执行自己的资源文件,参看http://www.linuxdot.net/bbsfile-3354 缺点可能就是麻烦了,既要cygwin又要各种配置文件,洋洋洒洒一大页。。。

3、借助第三方打包工具,不好意思,具体的工具名字我忘记了,试过了好几款,基本都收费,用起来并不算很方便(脱离framework只是卖点之一)

4、借用飞信的虚拟机,这个,记得N年前刚学C#的时候就有这个方案了,针对2.0有效,据说是移动画大价钱买的,现在已经放弃改用C++重写了客户端。。

 

总之,我能找到的方案基本就以上了。不过说实话,没一个用起来省心的- -

后来,我想了下,有了自己的一套懒人方案:

1、采用MONO虚拟机(最新版本已经支持winform,C#4.0特性,相当给力)

2、hook monow.exe的启动参数,重定向到自定义程序集

3、(可选)如果觉得没必要采用客户机的.net,可以直接将bin文件夹内的文件用 Enigma Virtual Box (一款免费的打包工具)打包成单一EXE

4、运行程序,无问题后,除动态读取的资源外,其余直接全部选中删除,win7下提示不能删除的选择忽略(lib文件夹要多迭代删除几次),或自己写一个批处理

 

以上几步做完后,程序集就完全脱离framework了,简单有效 ;-)

 

如对hook工具有需要,请自取http://git.oschina.net/flywuya/UsefullTools

转载于:https://my.oschina.net/flywuya/blog/467884

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值