代码之家  ›  专栏  ›  技术社区  ›  Mayur

在没有任何命令行参数的情况下为MSI安装程序启用安装日志

  •  1
  • Mayur  · 技术社区  · 7 年前

    如何启用 登录中 在我的 设定 MsiLogFileLocation setup.msi 使用命令行参数:

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

    我想把我的工作记录下来,一直都在运行 没有任何争论。有没有办法做到这一点?

    2 回复  |  直到 7 年前
        1
  •  9
  •   Stein Åsmul    4 年前

    单行日志记录如何: Your.msi 并创建详细的日志文件。下面是更多。

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

    从MSI SDK : " 您可以通过使用在用户计算机上启用详细日志记录 Command Line Options 这个 MsiLogging property , Logging policy , MsiEnableLog 和 EnableLog 方法 ".

    简短回答 :所以添加属性 MsiLogging 属性添加到您的MSI Property Table 也许用 "vp" 作为值(不带引号)。


    热调试提示 :搜索 " value 3 " Rob Mensching (Wix&Orca作家)。否则,MSI日志文件可能会被淹没。有关测井解释的更多信息,请参见下文(黄色部分)。



    燃烧 :WiX Burn Bundles( setup.exe 启动器)有自己的日志结构(除了上述特定于MSI的日志)。换句话说,MSI文件有其日志记录,并且 setup.exe 燃烧发射器有自己的。


    快速日志记录(详细) :最简单的日志记录,从 cmd.exe .

    msiexec.exe/ic:\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包-全局日志记录(策略)

    是的,你 enable logging globally on the machine 通过设置适当的注册表项。然后,启动的每个MSI都会在中创建一个带有临时名称的日志文件 TEMP

    注册表项&价值

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

    如何 Globally for all setups on a machine ": http://www.installsite.org/pages/en/msifaq/a/1022.htm 关于确切的程序。

    抬头 (技术细节): This is a very technical problem that may have a bothersome and highly unexpected pragmatic effect . 这种全局日志记录的一个副作用是 Session objects MSI-API 还将在临时文件夹中创建日志文件。这可能会导致在临时文件夹中创建数百个日志文件,如果 iterate all packages and instantiate a session object . 也在事件日志中


    包特定日志记录

    除了全局设置和策略外,您还可以通过属性或自定义操作自定义每个包的日志记录,或者仅通过指定选项和日志记录位置 msiexec.exe命令行 .

    :以最简单的形式: msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log . 会议文件 msiexec.exe command line (请参阅开关部分: /L )

    性质 :您可以设置 MsiLogging property 在每个包中自定义日志记录。MSI属性 MsiLogFileLocation 保存日志文件的路径。如果要在安装后打开日志,请使用此选项。

    自定义操作 当前位置你可以调查 Installer.EnableLog method 的 MSI-API Windows Installer Logging .


    解释MSI日志文件

    关于解释日志文件的主题: How to interpret an MSI Log File .

    : Direct PDF Link to Robert Macdonald's log guide

    发现错误 :和,如上所述:搜索 价值3 " 在日志文件中查找错误,如 (Wix&Orca作家)。否则,MSI日志文件可能会被淹没。

    : How Do I Read a Windows Installer Verbose Log File?


    写入日志 自定义操作 没那么难。这是一本关于这个主题的入门书 罗伯特·迪考 : MSI Tip: Writing to the Log File from a Custom Action .


    一些链接 :

        2
  •  1
  •   Mayur    7 年前

    要启用的自动日志记录,请执行以下操作: MSI Orca 为设置适当的值 MsiLogging 所有物 是可编辑的 Orca ,用于编辑的官方MS工具 微星
    微星 包不是可执行的二进制文件,而是包含定义安装过程的数据的数据库。我们可以添加 MsiLogging 有价值的财产 v .

    This image shows Orca UI to edit MSI to enable logging.
    ( ref