VS使用WinRAR软件以命令行方式打包软件至一个exe

时间:2022-01-13 11:31:50

由于项目需要,需要将一个绿色版软件(即无需在C盘写入文件)发给客户使用,要求是只有一个exe文件,双击即可执行。​

网上说WinRAR软件创建自解压文件可以实现,链接http://blog.csdn.net/harvic880925/article/details/27675073

该方法是手动版的,项目中常常需要以命令行的方式执行。我查了一下WinRAR自带的帮助,实现了该方式。

原理:将软件中的文件打包至一个exe文件,双击该exe,首先执行的是解压操作,将解压后的文件放到临时文件夹,然后自动执行临时文件夹中的exe文件。因为是放到了临时文件夹,给用户的感觉就是只有一个exe文件。​

实现:

1. 打开C:\Program Files(x86)\WinRAR文件夹,将其中的Default.SFX​、WinRAR.exe和Rar.exe复制到你的工程目录中;​​

2. 将你的绿色软件需要的文件放入soft文件夹下;​

3. 创建note.txt注释文件,编辑如下,含义分别为临时文件夹、静默模式、覆盖写入和启动后自动执行的文件:​

TempMode

Silent=1

Overwrite=1​

Setup=soft/soft.exe

4. 创建run.bat文件,编辑如下命令:​​

WinRAR.exe a soft.exe ./soft​​

rar.exe c -znote.txt soft.exe​

至此,双击soft.exe即可完成客户需求。命令行的方式还可以给生成的exe添加自解压图标,命令为-iicon,有兴趣的可以自行到WinRAR的中文帮助中查找和使用。​

缺点:​双击操作执行的是一个解压操作,大的软件解压是需要时间的,所以对于大软件来说,封装成一个exe文件可能意义不大。但是平时见到的一般也是小软件做成一个exe的形式。