Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 如何在单个MSI中部署多个项目?_Visual Studio_Windows Installer - Fatal编程技术网

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

Visual studio 如何在单个MSI中部署多个项目?,visual-studio,windows-installer,Visual Studio,Windows Installer,我的解决方案中有3个项目要部署。有没有一种简单快捷的方法可以使用Visual Studio的安装项目使用一个MSI部署所有三个应用程序,并让用户在安装过程中决定要安装哪些应用程序 我有3个单独应用程序的安装项目,我还有一个总体安装项目,其中包含其他三个项目的输出。我走对了还是有更好的方法?我想您可能需要合并模块。根据MSDN: 合并模块是Microsoft Windows Installer的标准功能,它将组件与任何相关文件、资源、注册表项和安装逻辑打包在一起。您可以使用合并模块安装多个应用程序

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


我有3个单独应用程序的安装项目,我还有一个总体安装项目,其中包含其他三个项目的输出。我走对了还是有更好的方法?

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

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


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

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

谢谢,
Apn

您可以使用我在这里发布的Wix-->

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

至于合并模块,WiX的首席开发人员参与了合并模块规范的早期创建,他现在使用.wixlibs重新命名


您不需要安装msm。msm集成到msi中。从msi中你永远看不到这是否是msm的结果。但你为什么需要这个?一个MSI中有三个MSM。每个都有不同的特点。安装所需的功能。完成。我想知道如何准确地向安装程序添加功能。我正在使用VisualStudio生成安装程序。谢谢,Apn