[wix-users] Conditional uninstall of related product.

Hoover, Jacob Jacob.Hoover at greenheck.com
Tue Dec 12 10:02:08 PST 2017

Conditional Upgrades: Allowing the BA to make the decision to populate the table or not. (This is proof of concept, and I am asking for feedback from the great MSI Wizards like Rob/Bob/Heath/Etc.)

Semi-Custom Actions: A phrase coined by Bob, https://www.joyofsetup.com/2007/07/01/semi-custom-actions/, which involves manipulating the MSI at runtime to get existing Windows Installer behavior that the default authoring capabilities don’t provide.

Dynamically modifying a table: Use WcaAddTempRecord, an example can be found here: https://www.firegiant.com/wix/tutorial/standard-libraries/custom-actions-and-user-interface/

BA install option would be a WixStdBA Variable (http://wixtoolset.org/documentation/manual/v3/xsd/wix/variable.html) that you allow for it to be overridden, and commonly would show it on the WixStdBA options dialog by modifying an existing theme (http://wixtoolset.org/documentation/manual/v3/bundle/wixstdba/wixstdba_customize.html).

From: Ven H [mailto:venh.123 at gmail.com]
Sent: Tuesday, December 12, 2017 11:53 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Cc: Hoover, Jacob <Jacob.Hoover at greenheck.com>
Subject: Re: [wix-users] Conditional uninstall of related product.

Hi Jacob,

Wow. There are a lot of things to learn from your email. Can you please throw some light on some of the areas mentioned by your like Conditional Upgrades, Semi Custom CA, how to dynamically populate the Upgrade table, what is a BA install option and so on. Sorry for being so naive, but I am really anxious and eager to learn new things. Please help.


On Tue, Dec 12, 2017 at 11:01 PM, Hoover, Jacob via wix-users <wix-users at lists.wixtoolset.org<mailto:wix-users at lists.wixtoolset.org>> wrote:
Just throwing an idea out here wanting to see if there are any pitfalls I am missing.

I have a new requirement to allow for conditionally leaving older versions of my application around (think of it as being similar to Office versions).  I have changed the needed Product and Upgrade codes, but as the Upgrade table and Windows Installer doesn't allow for conditional upgrades I have instead written a semi-custom CA for dynamically populating the upgrade table based on a BA install option that I then pass to the MSI as a property. I schedule my CA to run always, in both sequences immediately before FindRelatedProducts.  My CA appends temporary rows to the Upgrade table (based off of a static property which is a list of prior version upgrade codes), and then appends the dynamically named action properties to the SecureCustomProperties property.

This seems to work in my limited testing, but I would appreciate any feedback on the concept.


WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/

More information about the wix-users mailing list