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

Windows installer 在没有任何命令行参数的情况下为MSI安装程序启用安装日志,windows-installer,Windows Installer,如何在MSI项目中启用日志记录并设置MsiLogFileLocation?现在,我正在使用命令行参数运行我的setup.msi: msiexec /i install.msi /l*v InstallLog.log 我想记录我的工作,始终只运行setup.msi,不带任何参数。有没有办法做到这一点 来自MSI SDK:“您可以使用、和启用用户计算机上的详细日志记录 方法” 简短回答:因此将属性添加到MSI中,并可能使用“vp”作为值(不带引号) 热调试提示:在日志文件中搜索以查找(Wix&O

如何在MSI项目中启用日志记录并设置
MsiLogFileLocation
?现在,我正在使用命令行参数运行我的
setup.msi

msiexec /i install.msi /l*v InstallLog.log
我想记录我的工作,始终只运行
setup.msi
,不带任何参数。有没有办法做到这一点

来自MSI SDK:“您可以使用、和启用用户计算机上的详细日志记录 方法”

简短回答:因此将属性添加到MSI中,并可能使用
“vp”
作为值(不带引号)


热调试提示:在日志文件中搜索以查找(Wix&Orca作者)解释的错误。否则,MSI日志文件可能会被淹没。有关测井解释的更多信息,请参见下文(黄色部分)



Burn:WiX Burn bundle(
setup.exe
启动器)有自己的日志结构(超出上述特定于MSI的日志)。换句话说,MSI文件有自己的日志记录,burn启动器也有自己的日志记录

  • ,和(WiX慈善)

Express Logging(Verbose):最简单的方法是从
cmd.exe
进行详细日志记录

msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log
快速参数解释


调试日志记录(详细):高级、慢速日志记录,以获取最多捕获的详细信息

msiexec.exe /i C:\Path\Your.msi /L*vx! C:\Your.log
快速参数解释


所有MSI包-全局日志记录(策略) 是的,您可以通过设置适当的注册表项在计算机上全局启用日志记录。然后,每次启动MSI都会在
TEMP
文件夹中创建一个带有临时名称的日志文件。按更改日期对文件列表进行排序,以获取最新的文件列表

注册表项和值:实际注册表设置:

[HKEY\U LOCAL\U MACHINE\Software\Policys\Microsoft\Windows\Installer]
“记录”=“语音预热”
“调试”=dword:0000000 7
如何操作:请参阅installsite.org上的FAQ条目,部分“
机器上所有设置的全局设置”
:了解确切的操作步骤

请注意(技术细节):
这是一个非常技术性的问题,可能会产生令人不安且非常意外的语用效果
。这种全局日志记录的一个副作用是,您使用脚本实例化的任何文件也将在TEMP文件夹中创建一个日志文件。这可能会导致在临时文件夹中创建数百个日志文件(如果需要)也在事件日志中(大系统管理员没有!)。非常具体的问题,但只是指出它。清理临时文件夹和事件日志“解决”了问题——或者更好——只是避免创建会话对象。请注意,部署工具可能会意外地实例化会话对象。可能在启用日志记录后进行检查,这样您就不会在网络范围内遇到这个愚蠢的问题


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

msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log
命令行:最简单的形式:
msiexec.exe/ic:\Path\Your.msi/L*v C:\Your.log
。有关的文档(请参阅开关部分:
/L

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

自定义操作:您可以调查的,以从自定义操作中自定义特定MSI的日志记录行为。更多:


解释MSI日志文件 关于解释日志文件的主题:

直接链接:(从Wayback中复活)

查找错误:如上所述:在日志文件中搜索以查找错误,如(Wix&Orca作者)所述。否则,MSI日志文件可能会被淹没

高级安装程序


写入日志:从自己的自定义操作写入MSI日志文件并不难。以下是罗伯特·迪考(Robert Dickau)关于这一主题的入门读物:


某些链接

  • (大量核心信息,请务必阅读)
  • (用于故障排除的详细日志记录)

要为
MSI
安装程序启用自动日志记录,需要使用
Orca
对其进行编辑,以便为
msiloging
属性设置适当的值
MSI
可通过官方MS工具编辑
MSI
软件包。
MSI
软件包不是可执行的二进制文件,而是包含定义安装过程的数据的数据库。我们可以添加具有值的属性。



()

先生,谢谢您的回答。可以通过自定义操作实现吗?假设我们可以在安装过程中添加该注册表项,并在完成安装后将其删除。您可以相对轻松地添加注册表项,并且您应该能够登录到事件查看器(如果您自己编写)。这取决于你的实际情况和你需要实现什么?通过一些编码,您可以从“设置完成”对话框中启动日志文件?在安装过程中不要随意使用该键。请查看更新的答案和
MSI API
Installer.EnableLog方法。我从未使用过它,因为我不想弄乱全局日志配置
 /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.