I have an install that has top-level Features and Sub Features which contain a single component that holds the Registry settings for the Feature. For example:
ComponentA (Windows service)
SubComponentA (Windows service parameters stored in Registry)
Assume there is a custom dialog that sets some checkboxes, text fields, etc. which are stored in the Registry via SubComponentA.
I've been tasked with making it so that when installed and the user selects the "Change" option in Programs and Features, the options can be modified and written back to the Registry.
The way that I have approached this is that I have a custom dialog (several actually) that collects all of the settings from the user and assigns them to properties as a series of events attached to the "Next" buttons for each dialog. This part works fine for a "clean install" and I persist the settings for "Modify" using system searches which also works well.
My approach has been to attach new events to the "Next" buttons on the custom dialog that will re-install the SubFeatures containing the Components with the Registry settings. For example, something like:
Condition: Installed And Not REMOVE="ALL" And _IsMaintenance="Change" And (&SubComponentA=3 Or !SubComponentA=3)
Several variations of this have been attempted and I either end up in a spot where things behave correctly when I want to reinstall, but not remove. Or sometimes, it's the other way around. In all cases, I have never reliably been able to update the Registry settings, and now I am not even sure if I am on the right track.
I'm likely missing something simple here that is just lost on me.