Small/Minor Upgrade Settings - Disable
What does the disable option actually do? For our software, even minor versions I want to force a complete uninstall of the old software. No files from the current version should remain. Our installers are small, and it's essential that every file is completely replaced.
I've got it working long ago by fudging with the major update settings, but it would be nice to have a simple, clean option for "never do a friggin' minor update, always wipe everything and install from scratch".
You can create a correct Major Upgrade by making the following changes within your project. At runtime these changes will inform the Windows Installer Engine how to behave:
1. Change the Product Code
2. Change the Package Code
3. Increment the Product Version
4. Keep the Upgrade Code the same
5. Add a Major Upgrade Item.
Any deviation from this can cause unexpected behaviour. We have a article which explains how to create a Major Upgrade step by step here:
Right, but what I'm saying is that's far too complicated. I build my project with nmake. I have a script that automatically updates the version number based on the GIT repository, so every change that is made can be tracked. I cannot update the product code and such through a makefile, that has to be manually changed. It's a big hassle, and I just don't understand why Installshield doesn't have the option to always always always uninstall an old version first.
I've got my one project working by using the version numbers in the major update screen to force a major update for all lesser versions. But every time I start a new installer project I have to fiddle with all the settings to get the files to always be replaced, otherwise older versions of the files end up left on the target machine. I'm always fighting installshield to get what I want. I feel like there should be a simple, clear option for this very common use case.