Программное обеспечение для веб-установки - PullRequest
4 голосов
/ 03 сентября 2011

Веб-установщики становятся все популярнее с каждым днем ​​- вы загружаете лишь небольшую часть установки, и она извлекает оставшиеся файлы с веб-сервера.

Но при всей популярности я не смог найти ни одного установщика, который бы изначально поддерживал веб-установку.

Я использую Inno Setup уже несколько лет - но поддержка загрузки очень проста, у вас естьделать все вручную.NSIS также весьма ограничен, когда дело доходит до загрузки и установки файлов из Интернета.

Существует ли какой-либо установщик, который поддерживает полнофункциональные веб-установки?

Ответы [ 3 ]

3 голосов
/ 03 сентября 2011

Установщик Windows поддерживает веб-установки:

  • вы запускаете msiexec.exe с URL-адресом пакета вместо пути к файлу
  • загружается MSI (только MSI)
  • при запуске установки Установщик Windows загружает только необходимые ему CAB-файлы из того же расположения, что и MSI

. Для этого есть несколько вариантов оптимизации:

  • создать CAB длякаждая функция вместо одного CAB для всего установщика
  • оставьте CAB вне MSI
  • поместите MSI и CAB в одну и ту же папку на вашем сервере

Кроме того, вы всегда можете добавить загрузчик EXE для обработки предварительных требований к пакетам.

Большинство коммерческих инструментов разработки настроек имеют прямую поддержку для этого.Некоторые бесплатные инструменты также поддерживают это, но для большинства вам нужно настроить его вручную.

0 голосов
/ 18 сентября 2011

InstallShield имеет обширную поддержку для веб-установок.

0 голосов
/ 15 сентября 2011

Можно создать сетевой установщик с NSIS, используя плагин inetc

!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
...