понедельник, июля 14, 2008

Windows Installer

По работе разбирался с инсталляторами сделанными на базе 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 - перезагрузку нужно будет сделать самому.
Отправить комментарий