博主最近在工作上碰到了需要将多个exe文件打包成一个exe文件,并在执行该合集exe文件时,分别执行该exe文件下的多个exe文件的需求。博主通过Inno Setup程序实现了这一需求,所以特在此记录一下实现的方法。
一.需求
我有两个杀毒软件需要给客户进行安装,考虑到客户安装的便利性,将两个杀毒软件合并成一个软件来给客户安装是最好的选择,然后考虑到打包软件的易用性,我这边选择了使用Inno setup打包程序来进行打包。
由于Inno setup程序自身在默认情况下打包多个程序成一个包后,运行包只会对主程序进行安装,不会自动安装其他程序,所以我需要写一个bat批处理文件来实现运行多个安装文件的需求。但是由于bat文件没有办法作为安装主文件放到Inno setup中,所以还需要将bat文件转变成exe文件后,才能使用inno setup程序进行打包
那么我的步骤就为:
(1)安装inno setup程序
(2)创建一个文件夹,将需要打包的程序放进文件夹中
(3)编写一个bat批处理文件,让其能够实现运行时依次启动该文件夹下的所有安装程序
(4)将该bat批处理文件通过Bat to exe程序转换为exe程序
(5)用inno setup把该批处理exe文件作为主程序和两个杀毒软件一起打包成一个主文件
二.进行打包
1.安装inno setup和Bat to exe程序
Inno setup的安装程序下载地址为:
链接:https://pan.baidu.com/s/1k2-HrvvqZHVnXMHEI5BlSA?pwd=xqoe 提取码:xqoe
Bat to exe的安装程序下载地址为:
链接:https://pan.baidu.com/s/1Wkco6N1sgH5YASxyK1EBhg?pwd=rrnc 提取码:rrnc
2.创建一个文件夹,将需要打包的安装程序放进去

3.编写一个能够批量运行文件的bat文件
创建一个setup.bat文件并打开编辑,输入如下的代码:
@echo off
set "current_path=%~dp0"
cd /d "%current_path%"
start AisEsmAgentSetupWin64.exe
start IP10.200.211.70_P80_SmpSetup_Agent.exe
其中,%~dp0在批处理文件中,表示当前批处理文件所在的路径。在这里,批处理文件所在的路径的值被赋值给变量current_path,然后cd进入该路径并运行我们的两个安装包。
4.将bat文件转换为exe文件
打开Bat to exe程序,按照如下的设置,转换bat文件,记得需要根据不同的系统位数,选择相应的选项。然后将编译好的exe文件,放到需要打包的程序的文件夹中。


5.使用Inno setup进行打包
打开Inno setup程序,新建一个脚本,并按照如下图的步骤依次操作。



主程序选择我们转换好的exe文件,然后其他应用程序文件我们选择我们的两个安装包,接着下一步




选择输出文件的位置以及输出的文件名,下一步后点击“立即编译脚本”后即可生成

如下图,可见安装包已经生成。双击即可进行安装

Comments NOTHING