Paolo
Paolo

Reputation: 11

WiX major upgrade doesn't run when I remove a merge module from the project

I've got a WiX project that includes the installation of Visual C++ 2008 runtime components for x86 with a separated merge module.

Unfortunately there's a well known issue with that .msm with MSI v4.5. To be more specific the .msm custom action SxSUninstallCA takes 20 minutes to complete on uninstall.

So, long story short, I decided to remove the .msm from the new version of the product, installing VC++ components with the .exe file, silently.

If I change only this thing (and the ProductCode, of course) the installer doesn't detect the already installed product on the machine and performs a normal installation, without uninstalling the older version first.

Any idea on what's going on here? Should MSI check for UpgradeCode and ProductCode to detect if a product is an upgrade of another one already installed on the system?

Upvotes: 1

Views: 631

Answers (3)

Paolo
Paolo

Reputation: 11

The project is set up to use UpgradeCode and ProductCode to detect an upgrade already. For example: I build a .msi with:

ProductCode="05406C5C-8D66-4779-AECA-A93B18729ED5"  
UpgradeCode="05B87404-548E-4BEA-9621-FBF9459F25B0"  
PackageCode="*"  
Version="1.1.1"  

This .msi contains files and folders to be installed, as well as Microsoft_VC90_CRT_x86.msm merge module.

Then I build up another .msi with the following parameters

ProductCode="7F626A0C-5E69-496D-999E-8E2B14C01FE6"  
UpgradeCode="05B87404-548E-4BEA-9621-FBF9459F25B0"  
PackageCode="*"   
Version="1.1.2"  

Same files, merge module still included: it works, the application gets updated (uninstalled the previous version, installed the new version). The moment I comment every single reference to Microsoft_VC90_CRT_x86.msm, the built installer doesn't detect the previous version of the application.

Upvotes: 0

SebastianD
SebastianD

Reputation: 21

Check if you have the ALLUSERS property set the same in both the installers. I have had the same problem with merge modules and that solved it.

Upvotes: 2

Rob Mensching
Rob Mensching

Reputation: 35796

If you want the new MSI to upgrade the old MSI (and you need to use a Major Upgrade because you are removing Components) then, yes, you need to use the UpgradeCode and Upgrade elements (or in WiX v3.5 you can use the new MajorUpgrade element).

If you provide more details about what is in your .wxs files, I can be more specific.

Upvotes: 1

Related Questions