
For the installer I'm doing now, rerunning it will be quite common (selecting different components etc), which is bad enough because if you deselect anything that you installed before, it will be removed! (but I have some ideas for avoiding that scenario).
The big problem is that I want to use the same installer for regular new versions of the application, but I don't want to change the GUID each time (resulting in multiple add\remove entries). My current setup would be fine except it always reinstalls the original versions of files even when I've rebuilt with new ones.
Anyone got any suggestions? Currently I'm using a slightly modified version of the aforementioned solution, is there an alternative to ComponentReinstall() at the point of moving files on a second run through? Basically OnMaintUIBefore() contains all the same dialogs etc as OnFirstUIBefore(), but OnMaintUIBefore() just calls ComponentReinstall() at the end.