2013-03-05 112 views
2

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

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

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

回答

1

你可以尝试通过属性的值作为参数传递给您的自定义操作,让你这个信息。仅当包在维护(修改或删除)中运行时才会设置“Installed”属性。要区分修改和删除这些,您可以检查“REMOVE”属性。这里列出了您需要在自定义操作中创建的条件。

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

要进行升级,如果定义了较旧的版本,则需要使用您定义的属性进行设置。假设您使用Stack Oveflow问题How to implement WiX installer upgrade?中的此方法。

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

+0

看起来这可能是一个可行的选择(而不是为安装程序创建一个新的自定义操作和新的,脱节的代码。唯一的问题是钻研WiX(但我怀疑我必须这样做) – Izzy 2013-03-05 11:20:58

相关问题