链接&引导多个MSI&将现有MSI功能集GUI合并到自定义GUI中

时间:2012-09-02 21:25:11

标签: c# wix windows-installer installshield bootstrapper

以前可能会问过有关Bootstrapper & Chaining的问题。我想问一些事情similar&的不同

我的要求CHAIN 3 installshield msi into a single oneexpose the feature selection GUI of 2 of the MSIs作为单个功能集,以便当用户选择顶级的任何功能时,该选择将被传递作为下面的相应msi&的参数。安装继续。用户可以再次启动此exe / setup,他可以通过以常规方式选择它们来删除/修改功能。

最后,当内部工具根据上述用户选择的功能安装the package should generate a custom XML file时,安装时间为I have no clue about the world of installers


因此,标准和自定义行为混合在一起。 correct approach ?。可能有人可以建议如何以最小的努力实现这一目标,或者使用 in C#/Winforms (or WPF) ? 重做。

我应该写一个这样的工具{{1}}看起来像重新发明轮子?即

之类的东西
  
      
  • 在标准GUI(Winforms / WPF)中拥有自己的自定义TreeView GUI
  •   
  • Process.Start(“msiexec / i / ADDLOCAL = Feature1 msi1.msi”) - > ADDLOCAL将从我的自定义GUI选择中传递功能集参数。
  •   
  • 挂钩进程的退出事件
  •   
  • 等待进程退出
  •   
  • 成功退出后,使用退出处理程序&amp ;;中的适当参数触发第二个msi。等......
  •   

我不知道它是否是正确的做法?对此有任何帮助非常感谢。在此先感谢!!

(我正在为此问题标记C#。)

1 个答案:

答案 0 :(得分:2)

说实话,bootstrappers和chainers是非常复杂的故事......远远超过了眼睛。如果您对安装程序一无所知,那么您需要为自己做好大量工作。最好看看WiX(Burn)和InstallShield(Setup Prereqs和Suite安装程序)等工具必须提供哪些工具,并根据其功能更改您的要求。

Microsoft的团队(此Office,SQL,Visual Studio)投入了大量时间和人才来开发他们的自定义解决方案。我们其他人通常需要花费更多的时间。

就个人而言,我会考虑将你的MSI分解成许多小的“微包装”,每个微型包装都有1个功能。然后使用具有设置先决条件和功能先决条件的InstallShield Basic MSI项目将它们连接在一起。我遗漏了很多细节,因为你必须先详细说明,然后再详细说明你的设计方法。

WiX 3.6 ala Burn也是一种可能性。