我正在寻找一个.net应用程序的安装程序,它需要运行一些其他的MSI。由于你一次只能运行一个MSI的限制(老实说,它是1995年吗?)和我希望提供运行哪些MSI的可配置性我不能只是在引导程序中推送MSI似乎是推荐的实践。我找到了similar question,但没有对响应感到高兴。
作为替代方案,是否有基于.net的安装程序框架,可用于自定义安装过程?我熟悉IzPack,InstallJammer和NSIS,但所有这些都使用非.NET语言,如果对于那些有点害怕其他技术的.net商店的话。
答案 0 :(得分:3)
如果你可以使用他们的用户界面或只做WiX风格的用户界面,WiX可以解决这个问题。
如果您想要更丰富的UI体验,则需要编写自定义引导程序。我过去通过编写一个客户引导程序解决了这个问题,该引导程序向用户提供了一个统一的UI,并使安装看起来像一个包,实际上安装是按顺序运行的MSI文件的集合。
以下是我所做的一般要点:
细节中的魔鬼,但它起作用并且效果很好!
使用更多备注编辑2010年9月3日:
如果采用这种方法,可以考虑以下事项:
基本上,在创作安装时(无论是单个MSI还是复合套件安装),请确保在整个软件生命周期中列出所有用例。以短视方式编写安装程序非常容易,然后在v2出现时发现自己被涂成了一个令人不快的角落。
祝你好运;)答案 1 :(得分:0)
我使用WiX创建MSI,然后使用非常小的NSIS脚本将它们打包到.exe中。我和微软的项目谈过,他们自己也经常使用它。如果您发现XML令人生畏,那么有一些工具可以帮助您使用它。
即使您坚持按照自己的方式制作MSI,我仍然会推荐NSIS用于.exe。这些脚本通常很小。