Есть ли способ обработать исключение catch в мастере установки MSI? - PullRequest
0 голосов
/ 27 февраля 2010

Я сталкиваюсь с некоторой странной ситуацией, когда при выборе / отмене выбора элементов в мастере настройки параметров иногда происходит сбой окна.Это не дает никакой подсказки вообще.Это также не происходит последовательно.

Есть ли у вас какие-либо идеи или сталкивались с такой проблемой?Я могу даже отследить основную причину, используя журнал установки.

Ответы [ 2 ]

1 голос
/ 01 марта 2010

Возможно, вы сможете приблизиться к изоляции проблемы, если включите политику отладки. Сделайте это, установив значение HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer Debug (dword) 7, как описано в команде установщика Windows blog . Затем вам нужно будет использовать инструмент, такой как DebugView , чтобы просмотреть дополнительные выходные данные, которые генерирует установщик Windows. Обратите внимание, что вам может потребоваться перезапустить службу «msiserver», чтобы политика вступила в силу. Удачи в понимании того, что это показывает; часто это просто много дампов SQL-запросов.

1 голос
/ 27 февраля 2010

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

Вместо этого вы можете включить ведение журнала MSI, это можно сделать либо через реестр, либо через командную строку. Чтобы узнать о параметре реестра, посетите эту статью поддержки MS . Чтобы сделать это из командной строки, вы можете использовать те же ключи, но они, очевидно, будут действовать только для этой одной установки. Это снимок, собранный из msiexec:

Logging Options
    /l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>


    i - Status messages

    w - Nonfatal warnings

    e - All error messages

    a - Start up of actions


    r - Action-specific records

    u - User requests

    c - Initial UI parameters

    m - Out-of-memory or fatal exit information

    o - Out-of-disk-space messages

    p - Terminal properties

    v - Verbose output

    x - Extra debugging information

    + - Append to existing log file

    ! - Flush each line to the log

    * - Log all information, except for v and x options

    /log <LogFile>

            Equivalent of /l* <LogFile>

Чтобы воспользоваться этими опциями, используйте msiexec напрямую:

msiexec.exe [path to your msi] /l [your options]
...