Question: I need to make an installer that will have to change the registry of another application (third party).
The other application has a REG\_SZ (plain string, NOT multistring) with a comma-separated list of values. My value has to be appended to that list (and removed on uninstall).

ListToUpdate (REG\_SZ) = "val1, val2, val3, myval"

Does Windows Installer have any built-in facility to do that? If so, (I actually don't believe in that), how to make use of it through wix?

If not, does wix itself has any extension that creates some custom actions to do that for us? Or will I have to implement my own?

Answer: 
You can do a registry read and get the value to a property. Then write to the same registry with the old value and your new value. This is how to do it.

Reading the old value
---------------------

```
<Property Id="OLDVALUE">
    <RegistrySearch Id="TestReg"
                    Root="HKLM"
                    Key="Software\TestKey\TestKey2"
                    Name="Test"
                    Type="raw" />
</Property>

```

Writing back to the registry
----------------------------

```
<Component Guid="A7C42303-1D77-4C70-8D5C-0FD0F9158EC4" Id="REGComponent" Directory="TEST">
      <RegistryKey Root="HKLM"
                 Key="Software\TestKey\TestKey2">
        <RegistryValue Name="Test"
                       Action="write"
                       Value="[OLDVALUE], MyVal"
                       Type="string"
                       KeyPath="yes" />
      </RegistryKey>
      </Component>

```

If you want to delete your value on uninstall, You can write a custom action to do it. Also make sure msi should run on administrator mode, or else registry will not be modified.
I think that you will have to create a custom action for this.