【发布时间】:2021-10-27 21:09:17
【问题描述】:
使用 WixSharp 构建安装程序,
在静默模式下运行时是否显示LaunchCondition? (例如“msiexec /i /qn /quiet”)
【问题讨论】:
使用 WixSharp 构建安装程序,
在静默模式下运行时是否显示LaunchCondition? (例如“msiexec /i /qn /quiet”)
【问题讨论】:
MSI GUI:MSI 有许多 UILevels - 可见 GUI (more on this here) 度数。在静默模式下运行设置时,启动条件中的任何错误都将显示在 MSI 日志中,而不是对话框中。
这是有道理的,因为您必须避免在可能没有人关闭它们时出现对话框(例如在自动包部署系统中)。
基本上,您可以使用基本 GUI
/qb或简化的 GUI/qr或完全静默运行/qn。当您静默运行时,不应显示任何对话框,您应查阅日志文件以获取结果:
静默 MSI 安装:
msiexec /i MySetup.msi /qn /L test.log
测试项目:https://github.com/glytzhkof/WiXLaunchConditionTest(MYVALUE 在属性表中定义 - 将其更改为 0 或 1)。
这是一个示例日志输出:
=== Logging started: 28.10.2021 13:07:12 ===
Action start 13:07:12: INSTALL.
Action start 13:07:12: FindRelatedProducts.
Action ended 13:07:12: FindRelatedProducts. Return value 1.
Action start 13:07:12: LaunchConditions.
MSI (s) (F4:DC) [13:07:12:491]: Product: WiXLaunchConditionTest -- Value for MYFLAG must be 1 (true) or 0 (false)
Value for MYFLAG must be 1 (true) or 0 (false)
Action ended 13:07:12: LaunchConditions. Return value 3.
Action ended 13:07:12: INSTALL. Return value 3.
MSI (s) (F4:DC) [13:07:12:493]: Product: WiXLaunchConditionTest -- Installation failed.
MSI (s) (F4:DC) [13:07:12:493]: Windows Installer installerte produktet. Produktnavn: WiXLaunchConditionTest. Produktversjon: 1.0.0.0. Produktspråk: 1033. Produsent: -. Installasjonens resultatstatus: 1603.
=== Logging stopped: 28.10.2021 13:07:12 ===
管理员权限:应该注意,MSI 应该从具有管理员权限的 cmd.exe 运行 - 否则您将无法获得来自静默安装程序的消息,由于缺少管理员权限,安装失败(失败是由于缺少管理员权限,而不是因为启动条件)。
此注册表脚本在 Windows 资源管理器中添加上下文菜单,可以在具有或不具有管理员权限的任何文件夹中打开 cmd.exe:https://github.com/glytzhkof/all/blob/master/HKCU_Run-CMD-Shell-Extension.reg。只需合并注册表文件,然后右键单击 Windows 资源管理器中任何文件夹中的空白区域。查看对话框底部的命令:
【讨论】:
/qb 或简化的 GUI /qr(而不是完全静默的/qn)运行 MSI,则会出现一个对话框。