2

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

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

(这类似于堆栈溢出问题如何添加仅在卸载时发生的 WiX 自定义操作(通过 MSI)?,但不完全是。)

4

1 回答 1

1

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

  1. 安装条件:未安装
  2. 卸载条件:REMOVE="ALL"
  3. 维护条件:安装并移除<>“全部”

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

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

于 2013-03-05T10:55:56.313 回答