代码改变世界

【程序打包压缩】使用NetZ打包你的软件:附原创小工具下载

2011-11-25 13:05  Brush  阅读(817)  评论(0编辑  收藏  举报

        最近项目里面需要这样的需求,即将项目里过多的库合并,让客户端看起来瘦一点,于是在网上找了不少资料,最初是看到ILMerge软件,它是由微软内部员工开发,能将使用.Net开发的程序合并在一起,但它有个缺点是对COM组件处理不大友好,程序若引用了COM组件,而这些COM组件若使用了其它COM组件,需要一并合并才会成功,否则程序无法运行。而且程序引用的库需要全部添加才能生成成功,可以说使用起来不是很理想。

  

      后来又找到一款合并软件,NetZ,开源项目。它比ILMerge多个功能,就是能混淆和压缩代码,而且它的限制比较少,你想压缩哪些库就压缩哪些库,不会出现失败信息。对COM组件支持得也比较理想,至少我用AxInterop.WMPLib和Interop.WMPLib均可成功合并,但System.Data.SQLite和刷卡模块等失败,尚未找出可行方案(有找到的也可以跟我联系)。为了方便起见,就在此软件的基础上做了一个可视化压缩工具(NetZ是命令行式,没有界面),软件环境是.net framework2.0及以上,NetZ目前支持最高3.5版本的压缩混淆合并(后续若出现更高版本,可自行更新软件目录下的NetZ文件夹内容)。

软件的原理是根据你的选择,帮你生成NetZ的命令行,然后去调用,这样就可以压缩混淆和合并了。操作方法:

1.选择你要压缩的主程序,Exe文件

2.选择一个输出位置,用来放置压缩好的文件

3.选择你需要同时压缩的引用库,可以不加

4.点击开始压缩后,待程序压缩完毕,会自动弹出文件夹,指向生成文件位置

 

下载NetZ-GUI-1.0

另附NetZ命令解释(摘自奇猫居-神游天地间):

如果要压缩一个EXE程序,只需要执行:
netz app.exe (这样会产生一个zip.dll 文件)
如果要去除这个dll文件,可以执行:
netz -z app.exe
如果要指定图标,可以执行:
netz app.exe -i app.ico
如果要指定版本,使用-n参数
如果程序是控制台程序,需要执行:
netz -c app.exe
如果要压缩exe文件和dll文件,可以执行:
netz app.exe lib1.dll lib2.dll
产生一个exe类型的单文件,可以执行:(也会产生一个zip.dll文件,要去除这个文件可以使用-z参数)
netz -s app.exe lib1.dll lib2.dll
netz -s -z app.exe lib1.dll -so(一般使用这几组命令生成一个单文件)
前题:把您的程序放在netz目录下,或者在 netz命令时,指定目录
例:netz -s -z D:\原创软件\QiMao_cn.exe D:\原创软件\XPTable.dll -so

 

原文章发表在我的独立博客: 捣鼓了一个程序压缩合并混淆小软件【附下载】