Fair enough, I'll just take care to not change the product code when I intend to use patching.
It is interesting though that WI allows you to change it in a patch, but seemingly there isn't much point in allowing it.
By the way, I found the reason why the UI was being screwy. To make it handle ...
*time passed*
*somewhat later*
I've interrupted myself here because I couldn't believe that it should be impossible to use a patch for a major upgrade.
I digged around in the MSI in Orca and ran some logs during the application of the patch to try and figure out why the install with the patch was doing nothing.
Before this, I discovered that the reason the UI sequence was messed up was because the condition on the "WelcomeDlg" entry in the InstallUISequence was not sufficient: it didn't cater for the situation where "Installed" was FALSE and "PATCH" was TRUE - so I changed it to:
Code: Select all
WelcomeDlg (NOT Installed) AND (NOT PATCH) 1230
This only solved the weird UI though. Some more digging in the logs revealed that the installer was attempting to reinstall a product that wasn't installed in the first place (because of the new product code).
This led me to the ControlEvent table, where I changed the "Next"-control's condition so that it doesn't set "ReinstallMode" and "Reinstall" if the application isn't installed:
Code: Select all
PatchWelcomeDlg Next Reinstall All AI_PATCH AND Installed 3
PatchWelcomeDlg Next ReinstallMode ecmus AI_PATCH AND Installed 1
So what happens now is that the "Welcome To Patch" UI still shows during a "major patch", but it actually does a major upgrade. I.e. it worked!
Yey
Don't worry, I won't ship anything like this, but this shows that it should work and what you'd need to change to make it work out-of-the-box.
Sorry for being so hard on this, it just had me a bit frustrated.