По работе разбирался с инсталляторами сделанными на базе Windows Installer.
Вот некоторые полезные хинты. Это не какая-то эксклюзивная информация.
Но раз уж я собрал все в своей голове - напишу, пока не забыл.
Как диагностировать установку:
Прямо сейчас запустите "msiexec"
Много интересного! Все эти ключи можно передавать любому инсталлятору на схожей основе.
Можно ставить отдельные .msi таким образом:
msiexec /i имяфайла.msi [и все волшебные ключи]
Самые полезный ключик:
/lvx* путь:\имяфайла.log - исчерпывающий лог-файл установки. Если инсталлятор писали не плюшевые медведи - там будет много интересного.
Можно (и нужно) взять код возврата инсталлятора.
Он может дать информацию в случае отсутствия лога.
Сверяться после установки со списком возможных кодов.
Как инсталлировать:
Полезные ключики:
/qn - установка без интерфейса. Т.е. просто все ставится по-тихому, не показывая окон. Все опции по умолчанию и т.д.
/qb - то же самое по сути, но показывает интерфейс. В нем нельзя ничего нажать, но можно посмотреть, что происходит.
Все что инсталлятор спрашивает у пользователя, хранится в свойствах. Если знать их названия, можно в некоторых рамках рулить процессом установки.
Для примера, вот готовая командная строка полной "тихой" установки Sql Express Advanced Edition с Reporting Services с выставленными настройками (свойствами):
Start /wait setup.exe /qn ADDLOCAL=ALL SAPWD=пароль SECURITYMODE=SQL SQLAUTOSTART=1 RSAUTOSTART=1 SQLACCOUNT="NT AUTHORITY\NETWORK SERVICE" RSACCOUNT="NT AUTHORITY\NETWORK SERVICE" DISABLENETWORKPROTOCOLS=0 RSCONFIGURATION=Default RSSQLLOCAL=1 INSTANCENAME=SQLEXPRESS
(Информацию об этих свойствах в случае Microsoft`овского продукта можно поискать в msdn)
Запретить ребут после установки можно с помощью ключика /norestart. Понять что перезагрузка все-таки потребуется можно по тому же
коду возврата. Т.е. если returncode == 3010, а не 0 - перезагрузку нужно будет сделать самому.
3 комментария:
По работе разбирался с инсталляторами сделанными на базе Windows Installer
Привет, пишу книжку по клиентской оптимизации, хочу тебя упомянуть в благодарностях (аську не нашел, пишу здесь). Ты не против?
Привет, не против конечно :)
Хотя и не очень понимаю за что :)
Отправить комментарий