Tuesday, August 24, 2004 6:28 PM jerdenn

MSI Resiliency

Aaron Stebner has an interesting article on MSI Resiliency, but before we get all excited about self-repairing applications, let's recognize something.  Not even Microsoft gets this one correct, so how can we expect customers and ISVs to become dependent on this feature?

For example, Windows Installer was first introduced with Office 2000, because of their incredibly complex SKU requirements.  One of the additional features that MSI introduced was the concept of self-repairing applications, otherwise referred to as application resiliency.  The problem was, that this was introduced as a cure-all, but never seems to work quite correctly.  Application resilience is the reason that you are prompted for you Office 2003 CD when you apply Office Updates from Microsoft.com.

There are other examples of where things don't seem to work quite correctly.  For example, I have a reproducible bug where if you install Visual Studio.NET, and then Installshield 8 or 9 (I haven't tried X yet..), you will be prompted for the Visual Studio.NET installation media if you attempt an installshield command line build.  What's wrong?  MSI, for some unkown reason, thinks it needs to repair VS.NET (and never does so correctly, I might add!)

The solution to this problem is to un-register and re-register mergemod.dll, usually found in "C:\Program Files\Common Files\Microsoft Shared\MSI Tools\mergemod.dll".

If Microsoft can't even get MSI Resiliency correct internally, how can we?

Filed under:

Comments

# mergemod.dll - what is its provenance?

Wednesday, September 22, 2004 8:58 AM by Paul Crowley

Please forgive this question in your blog - I have searched quite hard for an answer by other means...

Where does mergemod.dll come from in the first place? It seems that "light.exe", part of the WiX tools for building an installer, wants to reference it, but it's not present on my system, though the directory that might contain it is present. I have only the .NET SDK and WiX installed. Is it part of InstallShield, or VS.NET, or something else?

Many thanks,

# re: MSI Resiliency

Thursday, September 23, 2004 11:03 AM by Jerry Dennany

Hi Paul -

MergeMod.dll is a part of Visual Studio. For a complete list of products that MergeMod.dll is included with, check out the Microsoft DLL Help Database.

http://support.microsoft.com/default.aspx?scid=/servicedesks/fileversion/dllinfo.asp

# mergemod.dll provenance mystery solved!

Thursday, September 23, 2004 11:24 AM by Paul Crowley

Many thanks. Incidentally, that tool claims that the only thing containing mergemod 1.20 is "Visual FoxPro 7.0". I eventually tracked it down as being a part of the truly ginormous SP2 Platform SDK (266 Mb for a 137k file!) but I had to register it by hand.

I did find this incredibly frustrating snippet first though.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/merge_modules.asp

"Developers wanting to use merge modules must obtain one of the freely distributed merge tools, such as Mergemod.dll [...]"

That last is not a hyperlink - it's just plain text. One might imagine that a quick Google, or MSDN search would clarify. One would be overoptimistic.

Here's hoping the next person in that amazingly frustrating situation finds this hit in Google. Just to be of maximum help to that person, here's the registry key which started my quest, and on which it would have ended had a colleague's machine not worked.

F94985D5-29F9-4743-9805-99BC3F35B678

# re: MSI Resiliency

Friday, July 18, 2008 12:36 PM by Christopher Morrison

This information helped me fix a problem with Visual Studio .NET 2003.  I was getting Error 1706 every time I tried to build an MSI file.  Thank you very much.

Chris

# re: MSI Resiliency

Thursday, October 30, 2008 6:39 AM by Scott

Helped me too - thank you Paul for including that GUID.

Leave a Comment

(required) 
(required) 
(optional)
(required)