【问题标题】:Set a WiX burn bootstrapper variable from a bundled MSI?从捆绑的 MSI 设置 WiX 刻录引导程序变量?
【发布时间】:2017-08-03 17:40:12
【问题描述】:

我们有一个烧录引导程序包,它会安装一堆先决条件,启动我们的主安装,然后静默运行一些扩展安装程序。我们最近不得不将几个新组件添加到安装包中,这两个组件都需要已经从安装早期启动的其他产品中收集的配置信息。所以基本上:

  1. 安装包 1 并显示 UI。它要求提供服务用户和密码。
  2. 包 2 已添加到我们的捆绑包中。它还需要一个服务用户和密码,与包 1 相同。
  3. 包 3 已添加到我们的捆绑包中。它还需要一个服务用户和密码,与包 1 相同。

我们希望不必让用户配置相同的信息三次。我们看到的一种可能的解决方案是编写我们自己的 WiX 引导程序应用程序,但这似乎相当繁重。我们考虑的另一种可能性是,也许有一种方法可以让 package one 调用自定义操作,该操作设置烧录变量的值。然后,我们可以调用包 2 和 3 的安装程序,并将 burn 变量作为其静默安装命令行的一部分传入。有没有办法做到这一点?如果有,会涉及什么?

【问题讨论】:

    标签: wix burn


    【解决方案1】:

    我们最终找到了解决方案,使用了 Neil Sleightholm 的 extended bootstrapper application。这允许在引导程序中创建自定义操作。我们创建了一个 WiX 刻录自定义操作,它在 OnDetect 中启动了一个单独的线程。该线程打开一个命名管道并侦听要发送的变量名称和值对:当它获得这样的一对时,它使用引擎的 SetVariableValue 命令来设置值。在被调用的安装中,我们创建了一个自定义操作,它连接到命名管道并根据它收集的内容发送变量名称和值。变量的新值成功地传递给后续安装,但是在启动任何安装之前评估安装条件,因此无法使用值由安装设置的变量。

    【讨论】:

      猜你喜欢
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多