开发者

Web install builder software

Web installers are getting more popular every day - you download just a small bit o开发者_如何学编程f installation and it pulls the remaining files from webserver.

But with all popularity, I couldn't find any installer that natively supports web install.

I'm using Inno Setup for several years now - but download support is very basic, you have to do everything manually. NSIS is also quite limited when it comes to downloading and installing files form the web.

Is there any installer that supports full-featured web installations?


Windows Installer supports web installations:

  • you launch msiexec.exe with the package URL instead of a file path
  • the MSI is downloaded (only the MSI)
  • when installation starts Windows Installer downloads only the CABs it needs from the same location as your MSI

For this there are some optimizations:

  • generate a CAB for each feature instead of a single CAB for the entire installer
  • leave the CABs outside your MSI
  • place the MSI and CABs in the same folder on your server

Additionally, you can always add an EXE bootstrapper to also handle package prerequisites.

Most commercial setup authoring tools have direct support for this. Some free tools also support this, but for most you need to configure it manually.


It's possible to create a net installer with NSIS using the inetc plugin

!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


InstallShield has extensive support for web installations.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜