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.
Just when you thought the series on ARPSYSTEMCOMPONENT was over, I present to you an improved plan for supporting custom supersedence so that you can ship effectively superseded patches and still support N-1 patches, which are patches that apply to the RTM or a previous Service Pack,
To conclude the series of the problems with ARPSYSTEMCOMPONENT, we will extend the workaround to support setting ARPSYSTEMCOMPONENT=1 to support Microsoft’s lifecycle policy on support N and N-1, where N would be a service pack, and N-1 would be the previous service pack or the RTM.
Continuing the series on the perils and necessity of ARPSYSTEMCOMPONENT, it’s time to explain one solution for having your cake an eating it too.
If you have determined that you need to define ARPSYSTEMCOMPONENT=1 in your product RTM, remember that your product nor patches will not show up in the Add/Remove Programs (ARP) control panel unless you write entries for each to the registry yourself.
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,
Back in March I wrote about the dangers of using the RunOnce and Run registry keys. This is another post to help you avoid some other pitfalls.
The ARPSYSTEMCOMPONENT property in Windows Installer does not actually do anything directly to your installation —