I have been struggling for some time with a fairly large project from an upgrade standpoint. basically, here is my problem:
I have builds of this project which have versions that range from 4.00.0000 to 4.00.0003 just for the purpose of discussion.
Whenever I produce a new "release" type build, I change the product code and bump the version by 1. I have one major upgrade item which is set to remove the previous version completely and install the new version, the table contains the upgrade code which has been shared by each build since the beginning. I would have much rather been able to do a minor upgrade between revisions, but, since this never seems to work reliably (if at all) we decided that it would be better to handle upgrades as major instead of minor.
Now, to the actual problem. When upgrading, the install does all of the things that it should, it uninstalls all of the old version and installs the new one in its place. I can see my CA's running at the right times while I watch (most are command line functions, so I can see them execute ...) and everything seems to go well.
The problem is, once the install is complete, and I double click the application, instead of my application running, an install progress dialog pops up and starts installing stuff!

Although I think this is unacceptable from a functionality standpoint, it would at least be ok if it worked right, but generally, what happens is that it fails to find some file and that leaves my application completely broken.
Does anyone know what causes this behavior and how I could go about stopping this from happening? Any help would be greatly appreciated.
Thanks,
Mike