【问题标题】:Web install builder softwareWeb 安装构建器软件
【发布时间】:2011-09-03 16:31:05
【问题描述】:
Web 安装程序每天都变得越来越流行 - 您只需下载一小部分安装程序,它就会从 Web 服务器中提取剩余的文件。
但由于广受欢迎,我找不到任何原生支持 Web 安装的安装程序。
我已经使用 Inno Setup 好几年了 - 但下载支持非常基础,您必须手动完成所有操作。 NSIS 在从 Web 下载和安装文件方面也非常有限。
是否有任何支持全功能 Web 安装的安装程序?
【问题讨论】:
标签:
installation
inno-setup
nsis
web
【解决方案1】:
Windows Installer 支持网络安装:
- 您使用包 URL 而不是文件路径启动 msiexec.exe
- 已下载 MSI(仅 MSI)
- 安装开始时,Windows Installer 仅从与您的 MSI 相同的位置下载所需的 CAB
为此有一些优化:
- 为每个功能生成一个 CAB,而不是为整个安装程序生成一个 CAB
- 将 CAB 留在您的 MSI 之外
- 将 MSI 和 CAB 放在服务器上的同一文件夹中
此外,您始终可以添加 EXE 引导程序来处理软件包先决条件。
大多数商业设置创作工具都对此提供直接支持。一些免费工具也支持此功能,但大多数情况下您需要手动配置。
【解决方案2】:
可以使用 inetc plugin 使用 NSIS 创建网络安装程序
!define URL "http://url to full installer.exe"
outfile netinstall.exe
name "Net Install"
setcompressor zlib
!include "mui2.nsh"
!include "logiclib.nsh"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
LangString TEXT_DOWNLOAD_FAILED ${LANG_ENGLISH} "Unable to download installer.$\r$\n$\r$\nPlease check you Internet connection and retry."
section NetInstall
download:
inetc::get "${URL}" $PLUGINSDIR\installer.exe
pop $0
${if} $0 == "Cancelled"
quit
${elseif} $0 != "OK"
messagebox MB_RETRYCANCEL|MB_ICONEXCLAMATION "$(TEXT_DOWNLOAD_FAILED)" IDRETRY download
quit
${endif}
hidewindow
execwait '"$PLUGINSDIR\installer.exe"'
sectionend