InstallShield | Windows Installer Service (*.msi) | InstallShield с MSI
InnoSetup | Nullsoft Scriptable Install System (NSIS) | Wise Installer InstallShieldЧтобы автоматически установить приложение, использующее InstallShield, вам надо предварительно создать файл setup.iss на рабочей ОС. - Запустите приложение из командной строки, используя ключ /r (например, Setup.exe /r)
- Пойдет процесс установки, вы будете отвечать на вопросы - все как обычно. Главное, не выбирайте опцию перезагрузки компьютера сразу после установки ("Restart the computer now")
- После окончания установки зайдите в вашу системную директорию (C:\Windows) и извлеките оттуда файл setup.iss. Перед автоматической установкой положите файл в директорию, где лежит ваша программа.
В принципе, достаточно запустить автоматическую установку приложения таким образом: start /wait %systemdrive%\install\setup.exe /s Проблема
в том, что инсталлятор раздваивается на два процесса и закрывает
первый, так что start /wait отрабатывает вхолостую. Вы, наверняка,
захотите поместить эту команду в пакетный файл, устанавливающий также и
другие приложения. В таком случае правильнее использовать еще и ключ /sms, который заставит инсталлятор дождаться окончания установки приложения. Таким образом, команда будет выглядеть так: start /wait %systemdrive%\install\setup.exe /s /sms Установка InstallShield приложений методом RunOnceEx с CDПри
установке приложений, использующих InstallShield, методом RunOnceEx с
CD нужно указывать путь к лог-файлу (*.log). Для примера ниже
приводятся команды на установку Kerio Personal Firewall. Путь к
лог-файлу выделен. REG ADD %KEY%\045 /VE /D "Kerio Personal Firewall 2.1.5" /f REG ADD %KEY%\045 /V 1 /D "%CDROM%\apps\KPF\Setup.exe -s -f2\"%systemdrive%\kerio.log\"" /f
Как узнать, используется ли InstallShield для упаковки вашей программы?Большинство из них может быть извлечено из установщика, в свойствах установочного файла (который, кстати, всегда называется setup.exe)
будет что-то типа "InstallShield (R) Setup Launcher", и наконец наличие
файла setup.iss в системной директории развеет все сомнения. Windows Installer Service (*.msi)Если у вашего файла расширение *.MSI, то он был запакован при помощи Windows Installer. Эти файлы можно устанавливать с ключами /qb и /qn. Вкратце, /qb и /qn
аналогичны. Первый покажет прогресс установки, а второй полностью
скроет все окна и незаметно установит приложение. Если вы хотите
отобразить прогресс установки, но не показывать кнопку Cancel, исключая
возможность прерывания установки пользователем, то используйте ключ /qb-!. Некоторые приложения требуют перезагрузки компьютера после установки. Чтобы этого избежать используйте свойство REBOOT=ReallySuppress вместе с /qn или /qb, заключая все выражение в кавычки. Например: setup.msi "/qn REBOOT=ReallySuppress" Подробнее о ключах Windows Installer можно прочесть в этой статье MSDN. Смотрите также статью Использование ключей и свойств установщика Windows. InstallShield с MSIНачиная
с версии 7 InstallShield способен производить MSI файлы. Приложения
могут быть в виде отдельных MSI файлов или поставляться с установщиком setup.exe.
Последние в свою очередь бывают двух типов: "InstallScript MSI" и
"Basic MSI". InstallScript MSI использует традиционные ключи InstallShield. Basic MSI - отдельная история. Чтобы автоматически установить приложение, использующее Basic MSI, вам нужно указать ключи /s /v"...".
Многоточие нужно заменить на ключи, которые вы хотите передать
непосредственно Windows Installer (msiexec). Иными словами, если вы
хотите установить приложение абсолютно незаметно и избежать
перезагрузки, то используйте такую команду setup.exe /s /v"/qn REBOOT=ReallySuppress" Inno SetupПриложения, запакованные в бесплатный Inno Setup, поддерживают ключи /SILENT и /VERYSILENT (разница лишь в том, что второй не показывает полосу прогресса во время установки) setup.exe /VERYSILENT Есть небольшая проблемка. Вам захочется избавиться от окна, спрашивающего хотите ли вы продолжить установку: Чтобы подавить это окошко используйте такой ключ: setup.exe /VERYSILENT /SP- Осталась
еще одна проблема. Некоторые инсталляторы Inno Setup попытаются
запустить программу по окончании установки. ISOBuster как раз такой
случай. Тогда приходится убивать процесс, используя встроенную в
Windows XP утилиту Taskkill. Ниже пример кода для установки ISOBuster: ECHO. ECHO Installing ISOBuster 1.4 ECHO Please wait... start /wait %systemdrive%\install\Applications\ISOBuster\IsoBuster14.exe /VERYSILENT /SP- ECHO. ECHO Killing ISOBuster.exe process
taskkill.exe /F /IM isobuster.exe ECHO . Примечание. Утилита Taskkill не входит в состав Windows XP Home. Вместо нее можно использовать утилиту PsKill,
входящую в состав PsTools от Sysinternals. Синтаксис утилиты очень
прост. Продолжая пример с IsoBuster, команда для завершения процесса
будет выглядеть так. pskill.exe -t isobuster.exe Подробнее о ключах InnoSetup вы можете прочесть в этой теме на конференции OSZone (спасибо, Mchik). Как узнать, используется ли Inno Setup для упаковки вашей программы?При запуске инсталлятора в самом первом окне кликните на иконку в левом верхнем углу и выберите пункт About Setup из меню. Nullsoft Scriptable Install System (NSIS)Приложения, использующие бесплатный NSIS, запускаются с ключом -S (например, Setup.exe /S). Вы также можете использовать ключ /D для указания директории установки. Ниже пример установки программы CD-ex: Setup.exe /S /D=E:\Software\7-zip Приложения
Winamp и CDex показывают диалоговое окно, сообщающее об окночании
инсталляции. Как это обойти - непонятно, но это не повлияет на
остальные пакетные команды. Отмечу, что CD-ex можно устанавливать без
инсталлятора. Как узнать, используется ли NSIS для упаковки вашей программы?Смотрите скриншот, он примерно одинаков для всех приложений WISE InstallerПрограммы, запакованные WISE Installer, используют ключ /s. Все что нужно, это Setup.exe /s Как узнать, используется ли WISE Installer для упаковки вашей программы?Большинство будет показывать заставку в начале инсталляции Другие же могут развернуть окно с темно-синим фоном во весь экран, отображая окно установки в центре.
Источник: http://www.oszone.net/2766 |