链接与自举多个MSI&将现有的MSI功能集GUI合并到自定义的GUI中 [英] Chaining & Bootstrapping multiple MSIs & merging the existing MSIs featureset GUI into a custom one

查看:99
本文介绍了链接与自举多个MSI&将现有的MSI功能集GUI合并到自定义的GUI中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

关于 Bootstrapper&链接可能是之前问过的.我试图问一些相似& 不同.

The questions regarding Bootstrapper & Chaining might have been asked before. I am trying to ask something similar & different.

我的要求是作为单个功能集的CHAIN 3 installshield msi into a single oneexpose the feature selection GUI of 2 of the MSIs,这样,当用户选择顶层的任何功能时,该选择将作为参数传递)到基础的各自的msi&安装继续.用户可以再次启动该exe/安装程序,在那里他可以通过常规方式选择/删除/修改功能.

My requirement is to CHAIN 3 installshield msi into a single one and expose the feature selection GUI of 2 of the MSIs as a single feature set such that when the user selects any of the features on the top-level, that selection is passed as parameter(s) to the underlying respective msi & installation continues. User may launch this exe / setup again where he can remove / modify the features by selecting them in a usual way.

最后,当安装结束the package should generate a custom XML file时,内部工具将根据上面用户选择的功能使用该安装程序.

Finally, when the installation is over the package should generate a custom XML file to be consumed by an internal tool based on the features selected by the user above.

因此,有标准行为和自定义行为的混合. I have no clue about the world of installers.也许有人可以建议如何以最少的努力实现这一目标,或者使用 correct approach ? 重做.

So, there is a mix of standard and custom behavior. I have no clue about the world of installers. May be someone can suggest how to achieve this with minimal effort or redo with correct approach ?.

我应该编写这样的工具吗?in C#/Winforms (or WPF) ?看起来像是在重新发明轮子吗?即

Should I write such a tool in C#/Winforms (or WPF) ? Looks like re-inventing the wheel ? i.e. something like

  • 在标准GUI(Winforms/WPF)中拥有自己的自定义TreeView GUI
  • Process.Start("msiexec/i/ADDLOCAL = Feature1 msi1.msi")-> ADDLOCAL将从我的自定义GUI选择中传递功能集参数.
  • 连接到流程的退出事件
  • 等待退出程序
  • 成功退出后,使用退出处理程序&中的适当参数触发第二个msi.等等...
  • Have your own custom TreeView GUI in a standard GUI (Winforms / WPF)
  • Process.Start("msiexec /i /ADDLOCAL=Feature1 msi1.msi") --> ADDLOCAL will pass the featureset parameters from my custom GUI selection.
  • Hook onto Exited event of the Process
  • Wait on the Process for exit
  • On successful exit, fire the second msi with appropriate parameters from the exit handler & so on...

我不知道这是否是正确的方法?在这方面的任何帮助,我们将不胜感激.在此先感谢!

I do not know if its a correct approach ? Any help on this is much appreciated. Thanks in advance!!

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

推荐答案

说实话,引导程序和链接程序是一个非常复杂的故事……远远不止于此.如果您对安装程序一无所知,则可以进行很多工作.最好看看WiX(Burn)和InstallShield(Setup Prereqs和Suite Installers)等工具必须提供并更改您的要求以匹配其功能.

To be honest, bootstrappers and chainers are very complex story... far more then meets the eye. If you don't know anything about installers, you are setting yourself up for a whole lot of work. It's probably better to look at what tools like WiX (Burn) and InstallShield ( Setup Prereqs and Suite Installers ) have to offer and change your requirements to match their capabilities.

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

Teams at Microsoft ( this Office, SQL, Visual Studio ) have put vast amounts of time and talent to develop their custom solutions. Far more time then the rest of us typically have to spend.

就个人而言,我想将您的MSI分解为许多具有1个功能的小型微包装".然后,使用具有安装程序先决条件和功能先决条件的InstallShield Basic MSI项目,将其全部捆绑在一起.我遗漏了很多细节,因为您必须有详细的要求,然后才能阐明如何设计它.

Personally, I'd look into breaking your MSI's into many small "micropackages" that each have 1 feature. Then use an InstallShield Basic MSI project with setup prereqs and feature prereqs to tie it all together. There's a lot of details I left out because you have to have detailed requirements before you can spell out how you'd design for it.

WiX 3.6 ala Burn也有可能.

WiX 3.6 ala Burn is a possibility also.

这篇关于链接与自举多个MSI&将现有的MSI功能集GUI合并到自定义的GUI中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆