创建一个自我提取的可执行文件,它将自己复制到Windows上的临时目录并启动自身

时间:2011-02-16 15:07:12

标签: installation executable self-extracting

我想以自解压可执行文件形式分发设置。我想打包32位和64位窗口的版本。所以我有一个程序首先检查运行的Windows操作系统版本,然后启动正确的程序。所以我有一个像这样的目录结构

DetermineOS.exe
Win32\Win32Setup.exe
Win32\supporting win32 files
Win64\Win64Setup.exe
Win64\Supporting win64 files

我想将它们打包在一个名为install.exe的软件包中。当用户单击install.exe时,它会将此目录结构解压缩到临时位置并启动DetermineOS.exe,然后启动正确的setup.exe

NSIS是最简单的方法吗?这是一个复杂的NSIS脚本吗?谢谢。

2 个答案:

答案 0 :(得分:1)

对我来说,你唯一想要的就是提取到%TEMP%位置并运行某个exe文件。如果是这样的话,我不确定NSIS是最简单的方法。大多数档案都支持自提取并在提取完成上运行命令。例如,WinRAR和7z都有这样的模块。我的直觉是这个选项似乎比NSIS更容易。

不同的bootstrappers也支持此方案。例如,Visual Studio bootstrapperdotNetInstaller。我最近blogged about this simplest case with dotNetInstaller

希望这有帮助。

答案 1 :(得分:0)

您可以将不同的图像(可执行文件)放在“根”图像中,并根据需要提取并运行相应的图像(许多Sysinternals工具执行此操作 - 例如“root”应用程序嵌入32和64位)。