RegistryValue element
Used to create a registry value. For multi-string values, this can be used to prepend or append values.
For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element cannot be used if the Value attribute is specified unless the Type attribute is set to ‘multiString’.
Attributes
Action
This is the action that will be taken for this registry value. This attribute’s value must be one of the following:
- append: Appends the specified value(s) to a multiString registry value.
- prepend: Prepends the specified value(s) to a multiString registry value.
- write: Writes a registry value. This is the default value.
Id
stringPrimary key used to identify this particular entry. If this attribute is not specified, an identifier will be generated by hashing the parent Component identifier, Root, Key, and Name.
Key
stringThe localizable key for the registry value. If the parent element is a RegistryKey, this value may be omitted to use the path of the parent, or if its specified it will be appended to the path of the parent.
KeyPath
yesnoSet this attribute to ‘yes’ to make this registry key the KeyPath of the parent component. Only one resource (registry, file, etc) can be the KeyPath of a component.
Name
stringThe localizable registry value name. If this attribute is not provided the default value for the registry key will be set instead. The Windows Installer allows several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
Root
RegistryRootTypeThe predefined root key for the registry value. This attribute’s value must be one of the following:
- HKMU: A per-user installation will make the operation occur under HKEY_CURRENT_USER. A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE.
- HKCR: Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems, the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations.
- HKCU: Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath attribute to
yes
when setting this value for writing values in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer. - HKLM: Operation occurs under HKEY_LOCAL_MACHINE.
- HKU: Operation occurs under HKEY_USERS.
Type
Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value attribute or a child RegistryValue element is specified. This attribute should only be set when the value of the Action attribute does not include the word ‘remove’. This attribute’s value must be one of the following:
- string: The value is interpreted and stored as a string (REG_SZ).
- integer: The value is interpreted and stored as an integer (REG_DWORD).
- binary: The value is interpreted and stored as a hexadecimal value (REG_BINARY).
- expandable: The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
- multiString: The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). Please note that this value will only result in a multi-string value if there is more than one registry value or the Action attribute’s value is ‘append’ or ‘prepend’. Otherwise a string value will be created.
Value
stringSet this attribute to the localizable registry value. This value is formatted. The Windows Installer allows several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate values in the Type attribute to get the desired behavior.