Good references for the ARPSYSTEMCOMPONENT MSI property

I found a couple of recent posts by Heath Stewart that describe the ARPSYSTEMCOMPONENT property that is used by Windows Installer along with some tips, tricks and gotchas associated with it.  These posts are especially interesting and timely because I just wrote about some of the details of the external UI handler that the .NET Framework 2.0 setup uses.  One of the cases where it is helpful to use the ARPSYSTEMCOMPONENT property is when your MSI-based setup uses an external UI handler and you want the Add/Remove Programs entry for your product to launch the external UI handler instead of the standard Windows Installer UI for repair/uninstall.  The .NET Framework and Visual Studio both use this property in their MSI to suppress the standard Windows Installer Add/Remove Programs entry and then create registry keys/values in the registry table to point to their external UI handlers instead.

So, without further ado, here are Heath's articles.  Hopefully you'll find them as interesting and useful as I did:


Comments (5)
  1. Soon I’ll be following up with another blog entry or two about workarounds to support patching when defining ARPSYSTEMCOMPONENT. Stay tuned!

  2. Mike says:

    I wasn’t sure which blog post to reply to, this one or the one about the external UI handler used by the framework. If you use an external UI handler, and the Windows Installer decides to do an automatic repair (or your app calls MsiReinstallProduct with your productcode), it will launch the repair with the basic UI (equivalent of the /qb switch). It will not launch your external UI handler, correct?

  3. Hi Mike – you are correct. If Windows Installer performs an automatic repair like you describe, it will launch the MSI with basic UI, which is the equivalent of running msiexec.exe with the /qb switch.

  4. I have posted a solution to orphaned ARP entries when defining ARPSYSTEMCOMPONENT=1 at

  5. By default, an MSI-based setup will appear in Add/Remove Programs when it is installed on a system. …

Comments are closed.

Skip to main content