链接和引导多个MSI并将现有的MSIfunction集GUI合并到一个自定义GUI中
关于Bootstrapper和Chaining的问题可能以前曾被问过。 我想问一些类似和不同的东西。
我的要求是将CHAIN 3 installshield msi into a single one
, expose the feature selection GUI of 2 of the MSIs
为单个特征集,以便当用户选择顶层的任何特征时,该选择作为参数传递(s)基础相应的msi和安装继续。 用户可以再次启动此exe / setup,他可以通过以常规方式选择它们来删除/修改function。
最后,当安装结束时the package should generate a custom XML file
,由内部工具根据上面用户选择的function使用。
因此,标准和自定义行为混合在一起。 I have no clue about the world of installers
。 可能有人可以建议如何以最小的努力实现这一点或重做correct approach ?
。
我应该in C#/Winforms (or WPF) ?
编写这样的工具in C#/Winforms (or WPF) ?
看起来像重新发明轮子? 即类似的东西
- 在标准GUI(Winforms / WPF)中拥有自己的自定义TreeView GUI
- Process.Start(“msiexec / i / ADDLOCAL = Feature1 msi1.msi”) – > ADDLOCAL将从我的自定义GUI选择中传递function集参数。
- 挂钩过程的退出事件
- 等待进程退出
- 成功退出后,使用退出处理程序中的相应参数触发第二个msi,依此类推……
我不知道它是否是正确的方法? 对此有任何帮助非常感谢。 提前致谢!!
(我正在为这个问题标记C#。)
说实话,bootstrappers和chainers是非常复杂的故事…远远超过了眼睛。 如果您对安装程序一无所知,那么您需要为自己做好大量工作。 最好看看WiX(Burn)和InstallShield(Setup Prereqs和Suite安装程序)等工具必须提供哪些工具,并根据其function更改您的要求。
微软的团队(这个Office,SQL,Visual Studio)投入了大量的时间和人才来开发他们的自定义解决方案。 我们其他人通常需要花费更多的时间。
就个人而言,我会考虑将你的MSI分解成许多小的“微包装”,每个都包含1个function。 然后使用具有安装先决条件和function先决条件的InstallShield Basic MSI项目将它们组合在一起。 我遗漏了很多细节因为你必须有详细的要求才能说明你的设计方法。
WiX 3.6 ala Burn也是一种可能性。