给你一个背景 - 我有一个来自我们供应商的4个MSI,它必须去我们公司的服务器(我们正在查看大约3500台服务器)。截至目前,我的同行正在使用vbs,ps1脚本进行管理。但是脚本的问题是,每次更新时,我们都必须担心在运行新软件包和大量硬编码之前卸载现有软件包。如何在WIX Bundle中使用CustomAction?
我想通过设置WIX脚本将所有4个MSI打包在一起来自动化整个过程(使用非常少的硬编码)。我阅读了WIX捆绑包,并用它来创建单个MSI。但是现在有很多变量要传递给4个MSI,所以我想使用自定义动作来根据MSI运行的环境/机器来设置这些变量。但我不能让自定义操作起作用?我错过了什么吗?
一点点的谷歌搜索,我看到的东西有没有CustomActions捆绑?有人可以确认吗?
另外,如果没有CA的我的选择是什么?我如何操作变量传递给4 MSI?他们中的大多数都需要根据正在运行的计算机进行设置(如安装路径,用户标识,应用程序池标识等)。
有道理!我尝试了一切可能的方式让CA在捆绑包中运行,但它并没有被调用。据我所知,即使WIX Bundle生成一个MSI文件,它实际上不是一个MSI(你不能用msiexec运行它,或者用ORCA打开它)。这只是一个将所有MSI组合在一起的exe或程序,它不具有任何MSI的属性。 P.S:我认为只是为了让它感到困惑,MS把它命名为MSI :) – Isaiah4110
@ user1766402,我甚至没有意识到可以将该包作为msi输出,直到我读到你的问题。您可以右键单击Visual Studio中的项目并选择“属性”,然后将输出更改为.exe。无论如何,这应该是bundle/bootstrapper项目的默认值。 – BryanJ
WiX Bundle不是MSI,它是一个可执行文件。将.exe重命名为.msi不会改变这一点。 :) –