Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

What are merge modules?


1 reply to this topic

ZK123456

ZK123456
  • Members
  • 12 posts

Posted 06 March 2002 - 13:36

Hi

As you may have guessed, I am a beginner to MSI packaging. I am currently having a problem packaging Visio 2000 and another FTP client program, both of which use VBA.

On packaging each of the applications, both asked if I wanted to use certain merge modules, which appeared to be related to VBA files.

I selected no, and they continued on being packaged.

Now I have a problem. If the Visio MSI is installed WITHOUT the FTP program being installed, it works fine. But the moment I execute the FTP MSI, Visio refuses to open, and asks for the VBA CD.

So this is why I think I should've selected Yes to the initial packaging process, when it asked me if I wanted to use the merge modules.

Can anyone confirm if my assumption is correct? Or am I barking up the wrong tree?

Is this why merge modules are used? What are the advantages of using, for example, VBA merge modules?

Thanks a lot
ZK123456

rjtonnis

rjtonnis
  • Members
  • 8 posts

Posted 15 March 2002 - 20:15

In an MSI package all installation decisions are tracked through components.  The component is used to decide if the file needs to be added or replaced during an install and it determines if a file needs to be removed during an uninstall.  Any dll or exe you add must have its own component code.  If you have two applications that share an exe or dll (in the same directory) the MSI must use the same component GUID for the file.  If you don't and there is a difference between the versions of the exe or dll file the applications will try to repair itself because it sees a different version of the file added by the other application package.  This is sort of like dll hell in the days of W9x.  To simplify the process of sharing common files between application packages windows installer has what is termed merge modules.

A merge module is an sub installation package that you can add to multiple application packages.  The merge module takes care of all the bookkeeping needed to keep older versions of files from being copied over newer versions.  It also prevents applications from deleting files that another application shares.

The short answer is YES you should have used the merge modules.  You should also be on the lookout for other files that are common to both applications and search for merge modules that install them.

Hope this helps,
Rob
Rob