I have an installer which is working well when I first use it. When I run the program a second time I expected to go into maintenance mode and allow the addition of options. Unfortunately what I'm seeing is it remove all files before even the Prepare dialog comes up. I have verbose logging turned on but I don't see any mention of "remove" or "uninstall" in it. I do see one item that is a bit curious where it says "No matching ProductCode found in database". The product is definitely installed and the code in the log matches the ID in the project. Even uninstall isn't horrible with the exception that I have code defined to run during uninstall which never gets run. If I go into Apps & Features and select "Modify", I DO get the maintenance dialogs as expected.
So, I must be missing some configuration setting in my project but my internet searches are not helping me out. What would cause an installation to uninstall the existing program automatically before the very first dialog is displayed?