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

时间:2013-03-05 09:38:53

标签: c# wix windows-installer state custom-action

我有一个自定义操作,在.msi部署文件后运行UI。此UI设置配置,并将各种内容部署到各个位置(SQL服务器等)。用户界面本身在C#.NET 2.0)中运行。我怎么可能得到安装程序的状态(即升级/安装/修复和silent / minimalUI / fullUI等等)?

基本上,如何从基于C#/ .NET 2的自定义UI访问安装程序所处的模式,以便我可以在代码中处理这些状态?

(这类似于Stack Overflow问题 How to add a WiX custom action that happens only on uninstall (via MSI)? ,但不完全。)

1 个答案:

答案 0 :(得分:1)

您可以尝试将属性的值作为参数传递给为您提供此信息的自定义操作。仅当程序包在维护(修改或删除)中运行时,才会设置“Installed”属性。要区分修改和删除这些,您可以选中“REMOVE”属性。这是一个列表,其中包含您在自定义操作中构建所需的条件。

  1. 安装的条件:未安装
  2. 卸载的条件:REMOVE =“ALL”
  3. 维护的条件:已安装并已移除<>“所有”
  4. 对于升级,如果定义了旧版本,则需要使用您定义的属性。假设您已使用Stack Oveflow问题 How to implement WiX installer upgrade? 中的此方法。

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