如何使用 Wix+Burn 实现动态命名实例

How to do Dynamic Named Instance with Wix+Burn

我需要创建一个安装程序,允许用户安装我们的服务和应用程序的多个命名实例(即 Sql 服务器样式)。

我看到一个名为 AdvancedInstaller 的产品可以做到这一点,据我所知,这将通过 Bootstrapper 捕获信息并将其流式传输到 MSI 来实现。我在这里假设 Custom UI Burn 实现应该能够做同样的事情,但是我找不到任何准确地执行此操作或如何对 MSI 执行 'stream' 的示例。

如果我想走这条路,我还需要在我的 MSI 中指定实例吗?

目前,Windows 服务、应用程序有单独的 MSI,然后是允许选择要安装的服务的 Bundle Bootstrapper EXE。

谢谢

MSI 具有使用产品代码更改转换进行多实例安装的概念。这些转换可以(但不一定)嵌入到 MSI 中。这是一些背景资料。

http://blog.iswix.com/search?q=multiple+instance

先读IS12再读IS2009。由于 Microsoft 破坏了他们的网站,预计会有许多断开的链接。这是 2020 年的链接。

https://docs.microsoft.com/en-us/windows/win32/msi/installing-multiple-instances-of-products-and-patches

https://docs.microsoft.com/en-us/windows/win32/msi/authoring-multiple-instances-with-instance-transforms

https://docs.microsoft.com/en-us/windows/win32/msi/installing-multiple-instances-with-instance-transforms

使用嵌入式转换时,您只能使用在构建它们时选择的任何 ProductNames。您还可以动态生成转换并应用它们。

WiX 的标准引导程序应用程序并没有真正支持我在博客文章中谈到的所有场景。 InstallShield 和 AdvancedInstaller 等其他工具有更多。

尽管我喜欢 WiX 和 MSI,但这确实是高级的东西,需要很长时间才能理解、开发和测试解决方案。您可能想看看使用诸如 InstallShield 或 Advanced Installer 之类的工具,或者只是创建一个普通的直接 MSI 来安装应用程序模板,然后创建您自己的自定义实例管理工具,允许用户启动您的多个实例申请。

我是一名 WiX/MSI/InstallShield/DevOps 顾问。老实说,如果我给客户报价,这将是一个不便宜的项目。