wix - 如何在WIX bundle 中使用自定义操作?

标签 wix wix3.6 burn

为了给您提供一个背景-我有4个MSI,来自我们的供应商,并且必须送到我们公司的服务器上(我们正在寻找大约3500台服务器)。到目前为止,我的同行们正在使用vbs,ps1脚本进行管理。但是该脚本的问题在于,每次更新时,我们都必须担心在运行新的程序包和大量硬编码之前要卸载现有的程序包。

我想通过设置WIX脚本以将所有4个MSI打包在一起来自动化整个过程(用很少的硬编码)。我读到有关WIX捆绑软件的信息,并用它来创建单个MSI。但是现在有很多变量要传递给4个MSI,因此我想到了使用自定义操作根据MSI运行所在的环境/机器来设置这些变量的方法。但是我无法执行自定义操作吗?我想念什么吗?

进行了一些谷歌搜索,我发现捆绑中没有CustomActions吗?有人可以确认吗?

另外,如果没有CA,我有什么选择?如何处理要传递给4个MSI的变量?其中大多数需要根据其运行的计算机进行设置(例如安装路径,用户ID,应用程序池ID等)。

最佳答案

正如我所看到的,您有三个选择:

  • 根据所需的信息,可以使用WixUtilExtension执行简单的任务,例如读取注册表项和执行文件搜索,然后可以将结果作为属性传递给安装包。
  • 在各个安装包本身(不在捆绑包中)中实现自定义操作。
  • 编写您自己的自定义 bootstrap 应用程序,以确定您需要设置的所有属性,然后将它们传递给安装包。这比#1和#2更复杂,但是如果您感兴趣的话,以下链接应该可以帮助您入门:
    introducing managed bootstrapper applications
    write a wpf wix installer
  • 关于wix - 如何在WIX bundle 中使用自定义操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13018511/

    相关文章:

    wix - 是否可以同时只运行一个 WiX msi 实例?

    wix 托管 Bootstrap : Rollback failing

    wix - 使用 Burn 作为 WiX 对话框和自定义操作的替代方法

    visual-studio - 加快 WiX-Installer 的构建过程

    c# - Wix:托管 BA 命令行无效

    wix - '错误-2147467259 : failed to create SQL database' in WiX

    wix - 如何有条件地安装多个网址?

    visual-studio-2015 - Wix Burn vcredist

    wix - 如何将自定义 ExePackage 中的进度信息传递回刻录引擎?

    wix - 卸载问题