Включить журналы установки для установщика MSI без аргументов командной строки - PullRequest
0 голосов
/ 31 января 2019

Как включить logging в моем MSI проекте и установить MsiLogFileLocation?Теперь я запускаю свой setup.msi с аргументами командной строки:

msiexec /i install.msi /l*v InstallLog.log

Я хочу регистрировать свою работу всегда, просто запустив setup.msi без каких-либо аргументов.Есть ли способы сделать это?

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Чтобы включить автоматическое ведение журнала для MSI установщика, его необходимо отредактировать с помощью Orca, чтобы установить соответствующее значение для свойства MsiLogging.MSI редактируется с помощью Orca, официального инструмента MS для редактирования MSI пакетов.MSI пакеты - это не исполняемые файлы, а база данных с данными, определяющими процесс установки.Мы можем добавить свойство MsiLogging со значением v.

This image shows Orca UI to edit MSI to enable logging.( исх * * тысяча двадцать-два)

0 голосов
/ 31 января 2019

Из MSI SDK : " Вы можете включить подробное ведение журнала на компьютере пользователя с помощью Параметры командной строки , Свойство MsiLogging , Политика ведения журнала , MsiEnableLog и EnableLog метод".

Краткий ответ : добавьте свойство MsiLogging к вашей таблице свойств MSI и, возможно, используйте "vp" как значение (без кавычек).


Совет по горячей отладке : Поиск значения "3" в файле журнала, чтобы найти ошибки, как объяснено Rob Mensching (автор Wix & Orca).В противном случае файлы журнала MSI могут быть перегружены.Подробнее об интерпретации журнала см. Ниже (желтый раздел).


Экспресс-регистрация : простейшая регистрация из cmd.exe.

msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log

Краткое описание параметров :

 /i = run install sequence 
 /L*v C:\Your.log = verbose logging at specified path

Журнал отладки : расширенное, медленное ведение журнала для максимального захвата деталей.

msiexec.exe /i C:\Path\Your.msi /L*vx! C:\Your.log

Краткое описание параметров :

 /i = run install sequence 
 /L*vx! C:\Your.log = verbose debug logging at specified path

 The x adds extra debugging information, and the ! disables the log buffer.
 This means there is no lost log if there are any crashes.

Все пакеты MSI - Global Logging (политика)

Да, вы enable logging globally on the machine, установив соответствующий раздел реестра.После каждого запуска MSI в папке TEMP будет создан файл журнала с временным именем.Сортируйте список файлов по дате изменения, чтобы получить самый последний.

Ключ реестра и значение : фактические параметры реестра:

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]
"Logging"="voicewarmup"
"Debug"=dword:00000007

How-To : пожалуйста, смотрите эту FAQ-запись с installsite.org, раздел "Globally for all setups on a machine": http://www.installsite.org/pages/en/msifaq/a/1022.htm для точной процедуры.

Heads-Up (техническая деталь): This is a very technical problem that may have a bothersome and highly unexpected pragmatic effect.Побочным эффектом этой глобальной регистрации является то, что любые объекты Session , которые вы создаете из сценария с помощью MSI-API , также создают файл журнала в папке TEMP.Это может привести к созданию сотен файлов журнала в папке TEMP, если вы выполните итерацию всех пакетов и создадите экземпляр объекта сеанса . Также в журнале событий (большого системного администратора нет-нет!).Очень специфическая проблема, но просто указывающая на это.Очистка временной папки и журнала событий «решает» проблему - или, что еще лучше, - просто избегайте создания объектов Session.Обратите внимание, что ваш инструмент развертывания может неожиданно создавать экземпляры объектов сеанса.Может быть, проверьте после включения ведения журнала, чтобы вы не получили эту глупую проблему в сети.


Журнал для конкретного пакета

Помимо глобальных настроек и политик, вы можете настроить ведение журнала дляупаковать через свойства или пользовательские действия или просто указать параметры и расположение журнала с помощью командной строки msiexec.exe .

командная строка : в егоПростейшая форма: msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log.Документация для командной строки msiexec.exe (см. Раздел о переключателе: /L)

Свойства : Вы можете установить MsiLogging свойство в каждом пакете для настройки ведения журнала.Свойство MSI MsiLogFileLocation содержит путь к файлу журнала.Используйте это, если хотите открыть журнал после установки.

Пользовательское действие : Вы можете исследовать Installer.EnableLog method из MSI-API для настройки поведения ведения журнала для конкретного MSI из настраиваемого действия.Подробнее: Ведение журнала установщика Windows .


Интерпретация файлов журнала MSI

По теме интерпретации файлов журнала: Какинтерпретировать файл журнала MSI .

Прямая ссылка : Direct PDF Link to Robert Macdonald's log guide (воскресшийиз Wayback).

Поиск ошибок : И, как указано выше: поиск " значение 3 " в файле журнала, чтобы найти ошибки какобъяснено Rob Mensching (автор Wix & Orca).В противном случае файлы журнала MSI могут быть перегружены.


Некоторые ссылки :

...