【问题标题】:Installing multiple MSI's, pros & cons between WIX Bundle vs VBScript在 WIX Bundle 与 VBScript 之间安装多个 MSI 的优缺点
【发布时间】:2013-03-14 15:04:09
【问题描述】:

我们需要在我们的服务器上安装大约 4-5 个供应商 MSI(我们谈论的是接近 50k 台机器)。在安装过程中,我们需要根据运行它的机器传递一些属性。

我已经组装了一个 WIX Bundle 包,它从注册表中读取它需要的属性,并为写入注册表值创建了一个 C# 控制台应用程序。所以部署的最终输出将是 3 个文件(控制台应用程序、控制台 app.config、wix_bundle.exe)。我没有为此创建任何自定义引导程序,只是为此应用程序使用默认引导程序。

现在另一个处理相同 6MSI 的小组提出了一个 VBScript 来安装供应商 Msi。他们还编写了管理升级/补丁等的逻辑。我们需要做出决定继续前进,我想知道这方面的利弊。我会提到我的想法,如果有错请补充或纠正我。

我不赞成或反对任何解决方案,但我需要确保该解决方案能够持续多年。我们将至少再使用 5-10 年。

非常感谢任何帮助!

WIX 捆绑包的优点 1. 所有的 MSI 都组合为一个实体,因此与 VBScript 相比,卸载非常容易。 2. 我们有一个与 WIX Bundle 相关联的版本,无需查找各个 MSI 的版本。 3. 控制台应用程序控制写入 WIX-Bundle 所需的属性,因此服务帐户/密码等具有某种抽象。

WIX BUndle 的缺点 1. 我不知道它究竟是如何处理补丁和升级的。我看到很多帖子说他们看到 wix 包中的补丁/升级问题。 2. 通过注册表读取参数并不是最好的解决方案。如果我可以将属性作为命令行传递给 WIX 捆绑包,那就更好了。我知道我必须为此编写一个自定义引导程序? 3.

VBScript 的优点 1. 至少在我们的案例中,使用 VBScript 的解决方案是有效的,不需要额外的工作。 2.

VbScript 的缺点 1. 在安装过程中我们使用了多个服务账号,这些服务账号根据机器而变化,但是在VB脚本中所有这些账号(基于每台机器)以及密码都是硬编码的。 2. 维护脚本,因为它具有使用 GUID/版本号等的卸载/升级/补丁等逻辑。我们需要为每个版本保存/更新 vbscript 以确保它工作正常。

【问题讨论】:

  • 您将来会升级捆绑包中的单个 MSI,还是一起更新?
  • 是的,这是可能的,我们可以得到一个也需要升级的 MSI。

标签: c# vbscript wix bundle wix3.5


【解决方案1】:

我会使用 Burn。它围绕所有需要的包创建一个“身份”,您可以识别、升级、附加组件、补丁等。Burn 处理包的升级和补丁,Visual Studio 2012 将其用于所有产品、补丁和 VS 更新.如果有问题,我希望看到在它们上打开错误。 :)

此外,wixstdba 允许您通过设置刻录变量的命令行指定属性,请参阅 WixBalExtension 中的 Overridable 扩展属性。您不需要自定义 BA 即可支持该功能。

Bundle 的另一个优点是,如果 MSI 失败,Burn 将尝试回滚以使机器再次处于良好状态。您可以控制回滚通过RollbackBoundary 元素的程度。

【讨论】:

  • 感谢您的快速回复。我将尝试从命令行设置刻录变量并检查回滚功能。如果我有问题,我会告诉你。我还没有将此标记为答案,因为我也希望听到其他一些观点。
猜你喜欢
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多