我有三个产品,其安装程序位于 .exe 文件中。
假设这三个产品的安装程序是
- 产品_A.exe
- 产品_B.exe
- 产品_C.exe
我想使用 wix 工具集创建一个 msi 文件,它将安装这三个 exe 安装程序。
做这个的最好方式是什么?
我还想让我的 MSI 失败,以防三个 exe 中的任何一个安装失败。
我对这些很陌生,所以请帮助。
任何例子将不胜感激
我还计划在卸载 msi 后卸载这些产品。
预先感谢您的任何帮助
Tools:有许多工具可用于创建 MSI。一些商业和 WiX - 开源解决方案。这是工具的快速摘要 https://stackoverflow.com/a/50229840/129130。商业工具很优秀,但价格昂贵,WiX(免费、开源)也很优秀,但有一个学习曲线(XML 文本源)。请记住,在大多数情况下,设置顾问可以帮助您快速制作此类软件包,但您可能需要内部知识。工具长评 https://stackoverflow.com/a/1546941/129130.
内聚与耦合:您可能需要创建 3 个不同的 MSI 来安装这些产品,或者您可以将它们全部放在同一个 MSI 中。以下是一些注意事项 https://stackoverflow.com/questions/1542656/wix-to-install-multiple-applications/1546916#1546916决定要做什么。记住不要教条,而要务实——什么最适合您的具体情况?您可以通过在您创建的 MSI 中公开功能来仅允许安装某些工具 - 只允许从单个 MSI 安装某些功能。功能示例截图 https://superuser.com/a/785825/11906.
安装程序:还有允许的功能setup.exe
引导程序/安装程序启动器按顺序安装包含在其中的多个 MSI 文件。 WiX 具有烧录组件 https://stackoverflow.com/questions/50889307/wix-burn-doesnt-allow-to-remove-file/50892350#50892350,商业工具有多种选择(InstallShield 套件项目 https://stackoverflow.com/questions/49190377/msi-build-uninstall-installed-directory-not-removing/49212599#49212599、先决条件等...-信息在这里 https://stackoverflow.com/questions/52446750/removing-default-dialogs-from-msi).
Details: 至于实际设置。你需要确定他们实际安装的内容 https://stackoverflow.com/questions/6060281/windows-installer-and-the-creation-of-wix/12101548#12101548(要点 3)- 先决条件和所有(COM、COM+、GAC、Java、VC++ 运行时等...)。您可能可以通过以下方式获得该信息,也可能无法获得1)
内部专业知识(开发人员)的文档。2)
您可以提取文件 https://stackoverflow.com/questions/1547809/extract-msi-from-exe/24987512#24987512从设置来看(检查它们是否是已经从 setup.exe 中出来的 MSI 文件!), 3)
安装设置并检查应用程序操作依赖/分析工具 https://stackoverflow.com/a/51940598/129130. 4)
最好的方法是找到旧的安装脚本用于编译旧的安装程序。5)
您还可以“捕获”旧的安装 EXE 文件以自动转换为 MSI。有时,这需要专家进行认真的清理,并且通常需要昂贵的工具。在这里查看更多信息 https://stackoverflow.com/a/53296461/129130。可能还有进一步的方法。开发人员将转储文件就位,开始注册它们并安装运行时,然后继续进行,直到事情(看起来)可以正常工作,以便弄清楚在设置中要做什么(让他们记下一些好的笔记)。
包装团队:请注意,大多数大公司都有整个团队来负责将设置转换为 MSI - 通常称为“应用程序打包”。如果您在一家大公司,也许可以尝试找到他们,看看他们是否可以提供帮助(或者只是让他们为您捕获您的设置 - 使用昂贵的工具 - 供您清理 - 清理起来可不简单)。
Links:
- 关于功能、setup.exe 启动器以及如何分解和捆绑安装程序的长答案 https://stackoverflow.com/a/49501700/129130
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)