有没有办法在MSI安装向导中处理catch异常?

时间:2010-02-27 07:52:18

标签: exception-handling wix windows-installer

我面临一些奇怪的情况,当我选择/取消选择功能自定义向导中的功能时,它有时会崩溃窗口。它根本没有提供任何线索。它也不会一直发生。

您有任何想法或遇到过这样的问题吗?我甚至可以使用安装日志跟踪根本原因。

2 个答案:

答案 0 :(得分:1)

您有时可以从事件日志中获取MSI异常,但它们并不总能告诉您。

相反,您可以执行的操作是打开MSI的日志记录,这可以通过注册表或命令行完成。要了解注册表选项,请访问this MS Support article。要从命令行执行此操作,您可以使用相同的开关,但它们显然只会持续一次安装。这是从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]

答案 1 :(得分:1)

如果启用“调试”策略,您可以更接近隔离问题。通过将HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer的{​​{1}}值设置为(dword)Debug来执行此操作,如Windows Installer团队blog中所述。然后,您需要使用DebugView之类的工具来查看Windows Installer将生成的额外输出。请注意,您可能必须重新启动“msiserver”服务才能使策略生效。最好的运气使它显示出来的东西;通常它只是很多SQL查询转储。