我正在寻找一款工具(最好不是InstallShield,而且最好便宜/免费),支持链式MSI安装。我有几个小型安装程序需要单独部署,但也需要作为一组部署,我不想维护多个安装程序。看起来我需要Windows Installer 4.5才能正确完成这个任务,但当我寻找支持的安装程序版本时,似乎找不到太多信息。
你需要的是一个引导程序。使用InstallShield或Wix将创建一个MSI,当它正在运行时,将不允许其他较小的MSI运行。如果您已经有了较小的MSI运行,那么您只需要一个引导程序。MSDN有一个免费的引导程序可供下载,可以插入到VS2008中并使用MSBuild进行编译。您可能需要为您的MSI创建软件包,并将它们作为先决条件放入引导程序中。这将允许您按特定顺序设置运行它们的方式。这是MSDN链接:MSDN Bootstrapper Manifest Generator。
顺便提一下,以前是可以将其他MSI“嵌套”或嵌入到一个父级中的,虽然不是特别容易,但需要调整自定义操作等来确保在删除父级时删除嵌套程序等。遗憾的是,此功能已被"弃用",因此微软不再推荐使用。这里是如何在Visual Studio安装程序项目中执行此操作...但使用WiX创建引导程序更为明智。