桌面开发#001#软件打包#使用WinRAR创建自解压可执行程序
创建Windows可执行程序之后,在有些使用场景下不需做成安装包,而是期待直接双击即可运行。
我们可以将exe、dll等资源打包成压缩包,用户解压之后再运行exe文件;或者使用WinRAR软件将所有资源打包成自解压可执行程序。
0x01 准备可执行程序及其依赖
本文使用 项目 WinExeDemo ,编译一个Qt界面可执行程序,然后将exe、dll等资源拷贝到一个单独的文件夹“WinExePath”中。如下图所示:

0x02 手动打包方法
第1步,我们在文件夹WinExePath上鼠标右键,然后选择WinRAR,然后选择“添加到压缩文件(A)…”。如下图所示:

第2步,按如下图所示,选择“创建自解压格式压缩文件(X)”:

第3步,依次选择“高级”选项卡,然后在当前功能界面中选择“自解压选项(X)…”:

第4步,我们在“设置”选项卡中,输入解压后运行 WinExePath\WinExeDemo.exe,如下图所示:

第5步,指定压缩文件的图标。我们在“文本和图标”选项卡中,选择压缩文件的图标,如下图所示:

第6步,设置“更新”属性。更新模式和覆盖模式的选项,如下图所示:

第7步,设置“模式”属性。临时模式和静默模式的选项,如下图所示:

第8步,到此设置完毕,我们点击确定开始打包,如下图所示:

在当前目录下,我们会发现一个 WinExePath.exe 的可执行程序,双击该可执行程序,即自动解压然后运行WinExeDemo.exe,如下图所示:

问题:双击WinExePath.exe之后,可执行程序WinExeDemo.exe自动解压到哪里了?
在第7步,设置模式属性时,我们选择了“解压到临时文件夹(T)”,我们可以在WinExePath.exe运行期间,在操作系统的临时目录中找到该文件。
如下图所示:

0x03 脚本自动打包方法
在实际项目中,一般我们会将编译和打包做成自动化脚本,当需要发布软件时,使用该脚本重新编译代码并且按需打包成发布程序。
第1步,在工程目录下,创建编译打包文件“CompileAndPackage.bat”和属性文件“config.txt”,如下图所示:

第2步,编辑脚本“CompileAndPackage.bat”,其内容如下:
| |
第3步,编辑属性文件“config.txt”,其内容如下:
| |
第4步,双击“CompileAndPackage.bat”,开始编译并打包,如下图所示:

打包完毕之后,在当前目录下,“WinExeDemo_V1.0.0.1.exe”即为自解压可执行程序。双击,即自动解压,然后自动运行WinExeDemo.exe。
