If you have been doing Basic MSI installations for any length of time, you are probably used to dealing with Custom Actions. If you are new to MSI projects, then you better get used to working with Custom Actions. You gotta have ’em, so you better learn to love ’em.
In my long-standing, scandalous, and very public love affair with Custom Actions, I have noticed that conditions usually need to be attached to them. This is so they only run under certain circumstances. Two common cases are Major and Minor Upgrades. What conditions would you use to test for those?
For a Major Upgrade, use the [IS_MAJOR_UPGRADE] property. For a Minor Upgrade, use the [IS_MINOR_UPGRADE] property.
Just remember, sometimes you need to use the brackets with the property name, and sometimes you don’t. One example is with MsiGetProperty(). There, you don’t need to use the brackets with the property name in the function call.