单文件打包的软件具有单文件、免安装、拷贝方便的特点,对于研发人员来说,也相对于对程序进行了一个简单的加密(防止别人看到软件使用了那些库,解决一些开源协议、闭源SDK的使用问题)
单文件打包的两种方式
使用类似于winrar的压缩为exe
这种方式原理就是类似于winrar的自解压(即压缩包也可以像setup程序一样,双击后显示一个软件许可,然后自动解压在指定目录,最后自动运行软件,不明白的可以直接度娘"自解压"),实现了数据和程序的打包。非常的方便。但是使用winrar自带的功能还是比较麻烦的,这里介绍一款单文件打包工具,方便快捷。这个软件的名字就叫单文件制作工具
- 从网上搜索单文件制作工具即可找到这个软件
- 根据当前操作系统类型,选择x64位还是x32位,现在的电脑一般都是x64位了。
- 双击打开软件呈现如下图所示
- 根据需要设置相关参数
- 压缩方式:由于这种方式本身就是一种压缩方式,所以选择压缩方式是很自然的一件事情。一般情况下我们为了减少安装包的大小,都是选择极限压缩。
- 覆盖现有文件:与删除释放文件可以说是一致的。有些程序由于有用户数据,是需要释放之后不在删除的,不然配置的信息每次都丢失了。
- 一般情况下,生成的exe的名字不要与原始的exe名字一样,因为有些搜索工具可以搜索到隐藏文件夹下的内容的,为了避免别人查看的话,可以改个名字。
- 最后直接点运行就好了。
通过这种方法我们可以将大多数需要安装的软件变成单文件的执行软件(不是所有的,因为有些程序需要在安装过程中写注册表、下载安装一些环境之类的。(至于是否可生成独立的单文件程序,只要安装完成之后找到安装目录生成单文件软件给别人的电脑试试就知道了)
虚拟化单文件打包
第一种方式在每次运行的时候都是通过解压的方式,这种方式还是容易被别人看到软件信息的。虚拟化可以在程序打包之后在程序运行的时候将所有的打包之后的文件在内存上运行,不释放文件到本地磁盘,防止被别人检测(如Qt的许可问题,如果做商业用途,是需要收费的,为了防止这种纠纷,就可以简单的使用这种方式解决。不过有能力还是购买吧,为Qt的发展做贡献了)。
Enigma Virtual Box
Enigma Virtual Box是软件虚拟化工具,它可以将多个文件封装到应用程序主文件,从而制作成为单执行文件的绿色软件。它支持所有类型的文件格式,虚拟化后的软件不释放任何临时文件到您的硬盘,文件模拟过程仅在内存运行。
下载地址 https://enigmaprotector.com/en/downloads.html (也可自行百度搜索汉化版本)
操作流程
- 安装下载之后,打开软件
- 选择主程序路径与输出程序路径
- 将资源管理器的需要打包的目录拖到文件标签页中
- 独立设置某个文件是否需要写入到磁盘
为了解决用户信息文件的问题,不然每次重启配置都会丢失
- 设置文件选项
启用文件虚拟化是要勾选的,不然就虚拟化不了。
压缩文件:如果不压缩,程序文件可能会比较大,压缩了就是每次启动的时候会在内部解压,根据情况而定。
- 点击打包之后就可以在输出目录找到所需要的程序文件了