I have an MSI that is being generated from WIX scripts.
My question is similar to this question.
I want to create a custom uninstaller instead of using the default MSI uninstaller.
I am thinking of adding a custom action that executes after PublishProduct or before InstallFinalize that just goes and modifies the registry entry that specifies the uninstall string to use.
I am not worried about compatibility with SMS or similar products.
What are your thoughts on this method?
It's not that simple. For whatever reason, the ARP doesn't respect the UninstallString on MSI packages. So to change it you would have to set ARPSYSTEMCOMPONENT and validate all the various upgrade and removal paths you may ever wish to support. Heath Stewart has a series of blog posts related to this which help enumerate the possible scenarios and common problems with them.
I believe this series was written in the MSI 3.x era, so it likely does not address any new concerns on Windows Vista or later, and could not take advantage of the MSI 4.5 patch-uninstall custom action flag.