使用 wix 工具集安装多个 exe

Posted

技术标签:

【中文标题】使用 wix 工具集安装多个 exe【英文标题】:Install multiple exe with wix toolset 【发布时间】:2020-06-08 07:35:12 【问题描述】:

我有三个产品,它们的安装程序位于 .exe 文件中。 让我们说三个三个产品的安装程序是

Product_A.exe Product_B.exe Product_C.exe

我想使用 wix 工具集创建一个 msi 文件,它将安装这三个 exe 安装程序。

最好的方法是什么? 如果三个 exe 中的任何一个无法安装,我也想使我的 MSI 失败。 我是新手,所以请帮忙。

任何例子都将受到高度赞赏

我还计划在卸载我的 msi 后卸载这些产品。

提前感谢您的帮助

【问题讨论】:

1) 确定您的 EXE 文件是否是 MSI 文件的包装器。如果是这样,请提取 MSI 文件并改为运行它们(通常更好地处理错误和提高可靠性)。 2) 使用启动器(例如 WiX 的刻录功能)依次安装不同的产品。 See this "Hello Burn example"。 3) 查看更高级的 Burn 示例,其中包含处理各种退出代码的功能:Burn advanced "sample"。 How to extract MSI from setup.exe installers(显然 setup.exe 可能是非 MSI 安装程序)。 MSI 安装程序有许多怪癖,但也有many deployment benefits。还有online Burn documentation(上面的字符用完了)。如果您安装了 WiX,则本地磁盘上还有 WiX.chm 商业工具 Installshield 和 Advanced Installer(它们要花钱)具有很好的链接设置功能(可能不是每个版本,请检查您需要的版本)。 Information here (screen shot here)。 【参考方案1】:

工具:有许多工具可用于创建 MSI。一些商业和 WiX - 开源解决方案。 Here is a quick summary of tools。商业工具非常好,但价格昂贵,WiX(免费、开源)也非常好,但有一个学习曲线(XML 文本源)。请记住,在大多数情况下,安装顾问可以帮助您快速制作此类​​软件包,但您可能需要内部知识。 Long review of tools.

内聚和耦合:您可能需要创建 3 个不同的 MSI 来安装这些产品,或者您可以将它们全部放在同一个 MSI 中。 Here are some considerations 决定做什么。记住不要教条,而是要实用——什么最适合您的特定情况?您可以通过在您制作的 MSI 中公开功能来仅允许安装某些工具 - 仅允许从单个 MSI 安装某些功能。 Feature sample screenshot.

Setup.exe:还有一个功能可以让 setup.exe 引导程序/安装程序启动器安装包含在其中的多个 MSI 文件按顺序。 WiX 有Burn component,商业工具有不同的选项(InstallShield Suite Projects、先决条件等... - info here)。

详情:至于实际设置。您需要确定what they actually install(要点 3) - 先决条件和所有(COM、COM+、GAC、Java、VC++ 运行时等)。您可能会也可能不会通过 1) 内部专业知识(开发人员)文档获得这些信息。 2) You can extract files 从安装程序中查看(检查它们是否是已经从 setup.exe 中出来的 MSI 文件!),3) 使用dependency / profiling tools 安装设置并检查应用程序操作。 4) 最好是找到旧的安装脚本用来编译旧的安装程序。 5) 您还可以“捕获”旧的安装 EXE 文件以自动转换为 MSI。这有时需要专家进行认真的清理,并且通常需要昂贵的工具。 See more info here。可能还有其他方法。开发人员将文件转储到位,开始注册它们并安装运行时并继续进行,直到事情(出现)工作,以便弄清楚在设置中要做什么(让他们记下一些好的笔记)。


打包团队:请注意,大多数大公司都有整个团队来负责将这种设置转换为 MSI - 通常称为“应用程序打包”。如果您在一家大公司,也许可以尝试找到他们,看看他们是否可以提供帮助(或者只是让他们为您捕获您的设置 - 使用昂贵的工具 - 让您清理 - 这不是野餐清理)。


链接

A long answer on features, setup.exe launchers and how to decompose and bundle setups

【讨论】:

以上是关于使用 wix 工具集安装多个 exe的主要内容,如果未能解决你的问题,请参考以下文章

将 MsiPackage 安装为 /passive(WIX 工具集)

尝试从 WIX msi 运行嵌入式工具以进行选择性安装

成功安装和启动后 Windows 服务不工作(使用 Wix 工具集 3.7)

WiX工具集:安装具有特定权限的文件

SQLite的相对路径不适用于WIX工具集

用于包装的 WiX 工具