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

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

一行日志记录如何实现:安装Your.msi并创建详细日志文件。更多内容见下文。

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

来自MSI SDK的内容:通过使用命令行选项、MsiLogging属性、日志记录策略、MsiEnableLog和EnableLog方法,可以在用户计算机上启用详细日志记录。

简短回答:因此,将MsiLogging属性添加到您的MSI的属性表中,并可能使用值"vp"(不带引号)。

热门调试技巧: 在日志文件中搜索 "value 3",以查找错误,如Rob Mensching(Wix和Orca的作者)所解释的那样。否则,MSI日志文件可能会令人不知所措。有关日志解释的更多信息,请参见下面的黄色部分。

类似的答案

关于MSI日志开关和内容的说明

Burn: WiX Burn Bundles (launcherssetup.exe)拥有自己的日志记录结构(超出了上述特定于MSI的日志记录)。换句话说,MSI文件有其自身的日志记录,而setup.exe burn启动器则有它们自己的日志记录。

请参阅此答案,以及来自WiX善意的Rob Mensching。

建议:https://support.firegiant.com/hc/en-us/articles/230912407

Setup.exe提取:Burn setup.exe bundles还可以被提取(有关一般情况下提取MSI文件和setup.exe的信息)- 换句话说,您可以将setup.exe内容解压缩到输出文件夹。以下是一个内联示例(请跟随链接了解更多):

dark.exe -x outputfolder setup.exe

dark.exe 是一个 WiX 二进制文件 - 首先需要安装 WiX (WiX 快速入门链接) 以便提取 WiX setup.exe (目前是这样的,但可能会改变)。了解更多关于 dark.exe 的内容请参见第4节。

Express Logging (Verbose): 从 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安装包-全局日志记录(策略)

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

注册表键和值:实际的注册表设置:

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]

"Logging"="voicewarmup"

"Debug"=dword:00000007

操作方法:请查看来自installsite.org的常见问题解答,部分“全局设置机器上的所有安装”:http://www.installsite.org/pages/en/msifaq/a/1022.htm以获取确切的步骤。

注意事项(技术细节):这是一个非常技术性的问题,可能会产生令人烦恼和高度意外的实用效果。全局日志记录的一个副作用是,使用MSI-API从脚本实例化的任何Session对象也会在TEMP文件夹中创建一个日志文件。如果您迭代所有包并实例化会话对象,这可能会导致在TEMP文件夹中创建数百个日志文件。同时还会在事件日志中出现(系统管理员不允许!)。这是一个非常具体的问题,但只是指出一下。清理临时文件夹和事件日志可以“解决”问题-或者更好的方法是避免创建会话对象。请注意,您的部署工具可能会意外地实例化会话对象。启用日志记录后进行检查,以便在整个网络中不会出现此愚蠢的问题。

特定包日志记录

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

命令行:最简单的形式是:msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log。msiexec.exe命令行的文档(查看开关部分:/L)

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

自定义操作:您可以使用MSI-API的Installer.EnableLog方法来定制特定MSI的日志记录行为。更多信息请参见Windows Installer Logging。

解读MSI日志文件

关于解释日志文件的话题:如何解释MSI日志文件。还有关于该话题的另一个答案。

直接链接:Robert Macdonald的日志指南的PDF直接链接(从Wayback中恢复)。

查找错误:并且,如上所述:在日志文件中搜索"value 3"以查找错误,正如Rob Mensching(Wix & Orca作者)所解释的那样。否则,MSI日志文件可能会令人不知所措。

高级安装程序:我如何读取Windows Installer详细日志文件?

日志记录工具:一些关于MSI SDK日志记录工具WiLogUtl.exe的信息,以及如何启用慢速、持续的日志写入来捕获尽可能多的调试信息。

写入日志: 从你自己的自定义操作向MSI日志文件写入内容并不难。以下是来自Robert Dickau的入门主题:MSI提示:从自定义操作写入日志文件。

VBScript

C# / 托管代码

一些链接:

Windows Installer Logging(大量核心信息,请仔细阅读)

Windows Installer Best Practice(用于故障排除的详细日志记录)

MSI安装日志显示:注意:1:2205 2:3:错误

MSI安装程序未更新正在使用的文件(Visual Studio Installer项目)

如何读取Windows Installer详细日志文件?

如何重现MSI安装错误

如何读取Windows Installer详细日志

msiexec日志/ lv与/ l * v之间的区别

相关作品

如何在微信昵称上面加小字和上标数字的方法!
365体育投注怎么玩

如何在微信昵称上面加小字和上标数字的方法!

📅 06-27 👁️ 260
玓的解释
365bet在线

玓的解释

📅 07-20 👁️ 3826
华硕F456UV7200全新升级实力不凡 京东在售4099元 (有赠品)
365体育投注怎么玩

华硕F456UV7200全新升级实力不凡 京东在售4099元 (有赠品)

📅 08-20 👁️ 8242