如何从自定义操作 DLL 检查它是否是静默安装?

How to check if it's a silent installation from the custom action DLL?

当我的安装程序使用 msiexec /q /i 命令行启动时,有没有办法从我的自定义操作 C++ DLL 中判断它是静默安装?

PS。我正在使用 WiX 构建我的 MSI。

Windows 安装程序的 UILevel property 会告诉您安装程序是否已静默启动。四种不同的 UI 水平是可能的:

  • INSTALLUILEVEL_NONE - 2 - 开关:/qn - 完全静默安装。
  • INSTALLUILEVEL_BASIC - 3 - 开关:/qb - 简单的进度和错误处理。
  • INSTALLUILEVEL_REDUCED - 4 - 开关:/qr - 创作 UI,向导对话框被抑制。
  • INSTALLUILEVEL_FULL - 5 - 作者 UI 有向导、进度、错误 ( /qf).

UILevel 可能更好地用于将整个自定义操作设置为 运行 或不 运行 取决于 UILevel 设置的内容?或者您可以在自定义操作中获取它的值并相应地更改行为。

基本链接:

更多链接:


UPDATE:从旧的 Wise Command Line Builder 工具,这里是 MSI GUI 的一些选项。注意使用加号和减号来显示或隐藏静默安装的完成屏幕: