In many languages, some variables can take a value of different types but with the same meaning. Variants in script, for example, can take 0 or false; or they can take any non-zero value and true. The following JScript example prints “Same”.
Sequencing Windows Installer patches is typically straight forward but when the original product install or a previous, non-superseded patch defines ARPSYSTEMCOMPONENT as 1 in the Property table a custom supersedence plan is necessary to support writing Add/Remove Program registry keys correctly with patch supersedence and sequencing in mind.
Last week I blogged about how ARPSYSTEMCOMPONENT is dangerous, but there are reasons for using it. Two reasons ARPSYSTEMCOMPONENT is defined in the product MSIs for the .NET Framework 2.0 and Visual Studio 2005 is to localize the Add/Remove Programs (ARP) entries,