Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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
Installation 如何从.msi安装程序升级到.msm以获得新版本?_Installation_Windows Installer_Merge Module - Fatal编程技术网

Installation 如何从.msi安装程序升级到.msm以获得新版本?

Installation 如何从.msi安装程序升级到.msm以获得新版本?,installation,windows-installer,merge-module,Installation,Windows Installer,Merge Module,假设我有一个由一堆DLL组成的组件。该组件使用.msi安装程序发布了几个版本 现在,我们需要它是一个.msm,以便它可以包含在其他msi安装程序中。因此,我们需要构建一个可以从.msi安装升级的合并模块 怎么做?还是不能做到? 我们正在使用Wix。只要您维护相同的guid并将组件设置为共享,那么应该可以将组件移动到MSM中。MSM只会使组件包含在安装程序中,它的包含方式与将组件添加到安装程序中的方式相同,因此更像是将组件复制到多个安装程序中 当然,我没有尝试过这一切,只是在我不希望出现这种行为的

假设我有一个由一堆DLL组成的组件。该组件使用.msi安装程序发布了几个版本

现在,我们需要它是一个.msm,以便它可以包含在其他msi安装程序中。因此,我们需要构建一个可以从.msi安装升级的合并模块

怎么做?还是不能做到?
我们正在使用Wix。

只要您维护相同的guid并将组件设置为共享,那么应该可以将组件移动到MSM中。MSM只会使组件包含在安装程序中,它的包含方式与将组件添加到安装程序中的方式相同,因此更像是将组件复制到多个安装程序中


当然,我没有尝试过这一切,只是在我不希望出现这种行为的情况下,修复了多个安装程序共享组件的GUID时出现的错误。

非常感谢。另一个小困惑:通过“将组件设置为共享”,是只使用相同的组件代码还是还有其他事情要做?“共享”for components意味着该组件在多个安装程序之间共享,并导致MSI对该组件进行引用计数,并且仅当使用该组件的所有安装程序都已卸载时才卸载该组件。否则,第一个卸载的安装程序将删除该组件。