如何在我的MSI 项目中启用日志记录并设置?现在我用命令行参数运行我的:MsiLogFileLocationsetup.msi
msiexec /i install.msi /l*v InstallLog.log
Run Code Online (Sandbox Code Playgroud)
我想记录我的工作总是在setup.msi没有任何参数的情况下运行。有没有办法做到这一点?
来自 MSI SDK:“您可以使用命令行选项、MsiLogging 属性、日志记录策略、MsiEnableLog和 EnableLog方法在用户计算机上启用详细日志记录”。
简短回答:因此,将属性MsiLogging属性添加到您的 MSI属性表中,并可能
"vp"用作值(不带引号)。
热调试提示:在日志文件中搜索“ value 3 ”以查找错误
Rob Mensching(Wix & Orca 作者)。否则 MSI 日志文件可能会让人不知所措。请参阅下面有关日志解释的更多信息(黄色部分)。
Burn:WiX Burn Bundles(setup.exe启动器)有自己的日志结构(除了上面描述的 MSI 特定的日志)。换句话说,MSI 文件有它们的日志记录,而setup.exe刻录启动器有它们的日志记录。
快速日志记录(详细):最简单的详细日志记录来自cmd.exe.
msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log
Run Code Online (Sandbox Code Playgroud)
快速参数说明:
/i = run install sequence
/L*v C:\Your.log = verbose logging at specified path
Run Code Online (Sandbox Code Playgroud)
调试日志(详细):高级、缓慢的日志记录以获取最大的详细信息。
msiexec.exe /i C:\Path\Your.msi /L*vx! C:\Your.log
Run Code Online (Sandbox Code Playgroud)
快速参数说明:
/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.
Run Code Online (Sandbox Code Playgroud)
是的,您enable logging globally on the machine通过设置适当的注册表项。然后,启动的每个 MSI 将导致在TEMP文件夹中创建一个具有临时名称的日志文件。按更改日期对文件列表进行排序以获取最新的文件列表。
注册表项和值:实际的注册表设置:
msiexec.exe /i C:\Path\Your.msi /L*v C:\Your.log
Run Code Online (Sandbox Code Playgroud)
操作方法:请参阅 installsite.org 中的此常见问题解答条目,“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。此全局日志记录的副作用是,您使用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保存日志文件的路径。如果要在安装后打开日志,请使用此选项。
自定义操作:你可以调查Installer.EnableLog method的的MSI-API定制日志行为从自定义操作特定的MSI。更多: Windows 安装程序日志记录。
关于解释日志文件的主题:如何解释 MSI 日志文件。
直接链接:(
Direct PDF Link to Robert Macdonald's log guide从 Wayback 复活)。查找错误:并且,如上所述:在日志文件中搜索“值 3 ”以查找错误
Rob Mensching(Wix 和 Orca 的作者)。否则 MSI 日志文件可能会让人不知所措。高级安装程序:如何读取 Windows 安装程序详细日志文件?
写入日志:从您自己的自定义操作写入 MSI 日志文件并不难。以下是Robert Dickau关于该主题的入门: MSI 提示:从自定义操作写入日志文件。
一些链接:
| 归档时间: |
|
| 查看次数: |
4252 次 |
| 最近记录: |