https://bugs.winehq.org/show_bug.cgi?id=45317
--- Comment #10 from Vincent Povirk madewokherd@gmail.com --- OK, so it sounds like I need to add an Upgrade table and some upgrade-related actions, keep the UpgradeCode the same between releases, and change the ProductCode every release?
I don't know how we can cleanly transition to this from existing releases that do not have an Upgrade table.
Also, we will need a way for third-party tools like winetricks to remove Wine Mono regardless of what version is installed. My understanding is that uninstaller --remove uses the ProductCode which would no longer be constant. I guess that in C we would use MsiEnumRelatedProducts to search by upgrade code.
Maybe the (now more complicated) logic for removing the old product on upgrade or when needed by winetricks can do in addons.c?