如何在单个MSI中部署多个项目?

时间:2008-11-17 09:04:27

标签: visual-studio windows-installer

我的解决方案中有3个项目要部署。是否有一种很好的快速方法可以使用Visual Studio的安装项目使用一个MSI部署所有三个应用程序,并让用户决定在安装过程中要安装哪些应用程序?

我为3个单独的应用程序设置了项目,我还有一个总体设置项目,其中包含其他三个项目的输出。我是在正确的轨道还是有更好的方法?

4 个答案:

答案 0 :(得分:4)

我想你可能想要合并模块。根据MSDN:

  

合并模块是Microsoft Windows Installer的标准功能,它将组件与任何相关文件,资源,注册表项和设置逻辑打包在一起。您可以使用合并模块来安装多个应用程序共享的组件。您无法直接安装合并模块。您必须将它们合并到部署项目中。

http://support.microsoft.com/kb/827025

在您的情况下,每个应用程序都是一个合并模块,您需要提供一些UI来选择要安装的应用程序。您可以修改其中一个默认页面模板来执行此操作。

答案 1 :(得分:2)

如果使用WiX(我建议这样做),那么你将每个项目分解为其组件,每个项目将表示为WiX / MSI中的一个功能,你可以在其上进行有条件的安装。安装程序上用于选择功能的标准树对话框基于此,WiX示例具有使用它的现成UI。

至于合并模块,WiX的首席开发人员参与了早期创建合并模块规范,现在他推荐使用.wixlibs。 See Here

WiX v3 Docs

答案 2 :(得分:0)

我也有类似的要求,但是我使用了合并模块,但似乎无法找到一种方法来选择要安装哪个特定的msm以及哪些不安装。据我所知,有一个无条件属性可以在msm上设置,同时将它们与msi集成。如果有其他方式,请告诉我。

谢谢, APN

答案 3 :(得分:0)

你可以使用我发布的Wix - >

VS 2005 Setup Projects: Deploy Many Projects With One MSI