A key path is a unique registry value for each component that the Windows Installer uses to detect the component's presence. This value must contain a file or a folder.
The Fragment element is the building block of creating an installer database in WiX. Once defined, the Fragment becomes an immutable, atomic unit which can either be completely included or excluded from a product.
As explained by Rob Mensching:
The KeyPath for a Component is a single resource that the Windows Installer uses to determine if a Component "exists" on a machine.
This means that when Windows Installer decides whether to install your component, it will first look whether the keypath resource is already present. If it is, none of the resources in the component are installed.
The presence of the keypath resource also determines whether a component has been damaged or has gone missing when you "repair" an MSI.
When the keypath resource is a versioned file, Windows Installer will consider it to exist only if it finds a file with an equal or higher version.
In your specific example, you have a component which removes a folder on uninstallation. This component will only be installed if the given registry key does not yet exists. Adding a registry key to use as the key path is a common trick when you need a keypath for a component that installs resources that cannot be used as a keypath themselves, like a shortcut.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With