views:

133

answers:

1

Say I have a component which is made up of a bunch of DLLs. And the component was released using a .msi installer for several versions.

Now, we need it to be a .msm so that it can be included in other msi installers. So we need to build a merge module that can upgrade from .msi installations.

How to do that? Or it cannot be done? We are using Wix.

+1  A: 

As long as you maintain the same GUIDs and set the components to be shared then it should be possible to move the components into a MSM instead. The MSM will just cause the components to be included into the installers it is included in the same as if the components had been added to the installer so it's more like just copying the components into several installers.

Granted I haven't tried out any of this, only had to the reverse of fixing a mistake when multiple installers shared GUIDs for components when i did not want that behavior.

JShumaker
Thanks a lot. Another little confusion: By "set the components to be shared", is it only to use the same component code or there's still some other things to do?
Dudu
"shared" for components means the component is shared across multiple installers and causes MSI to do reference counting on the component and only uninstall it when all of the installers using that component have been uninstalled.Without this, the first installer to uninstall will remove the component.
JShumaker