Scenario

On Windows XP, I am advertising an MSI that has ARPSYSTEMCOMPONENT set to 1 but it appears in ARP anyway. Is this by design? Is there a workaround

Indeed, once I fault in the product, the ARP entry goes away. There’s not much to see in the MSI. Just set the property and run an advertisement. My guess is that the advertise script does not allow for this case, so there is probably no way that I can work around it.

Insight

Your analysis is correct. Advertisement doesn't write to the Uninstall key so the app shows up because of ARP's enumeration through MsiEnumProducts and the fact that there's no uninstall key reference with SystemComponent to ignore that particular product.

Content credit also belongs to

  • Carolyn, MSI Team Dev Lead. You can get other Carolyn insights about developing for Windows Installer from the Windows Installer Chat Archives
  • Jeff, Microsoft Dev
[Author: Robert Flaming]
This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm.