MSI自定义操作安装程序状态交互

本文关键字:程序状态 交互 安装 操作 自定义 MSI | 更新日期: 2023-09-27 18:02:22

我有一个自定义操作,在.msi部署文件后运行UI。这个UI设置配置,并将各种东西部署到不同的位置(SQL服务器等)。UI本身是用c#运行的。NET 2.0)。我怎么可能得到安装程序的状态(即升级/安装/修复和沉默/minimalUI/fullUI等)?

基本上,我如何从基于c#/的自定义UI访问安装程序的模式。这样我就可以在我的代码中处理这些状态?

(这类似于堆栈溢出问题如何添加一个WiX自定义操作,只发生在卸载(通过MSI)?

MSI自定义操作安装程序状态交互

您可以尝试将属性的值作为参数传递给您的自定义操作,该操作将为您提供此信息。"Installed"属性只有在包处于维护状态(修改或删除)时才会设置。为了区分修改和删除这些,你可以勾选"remove"属性。下面是一个列表,其中包含您需要在自定义操作中构建的条件。

  1. 安装条件:NOT Installed
  2. 卸载的条件:REMOVE="ALL"
  3. 维护条件:已安装并移除<>"ALL"

对于升级,如果定义了较旧的版本,则需要使用您定义的属性。假设您已经使用了Stack overflow问题中的方法如何实现WiX安装程序升级?.

对于包的UI级别,您可以检查属性uillevel .