Background:
- VS 2015 C# WinForm application
- InstallShield 2015 Professional
- InstalScript MSI project
We have an installer where the setup files have gotten their ProductCode and UpgradeCodes out of sync from previous versions.
The chronology of the builds goes something like this:
1.0.0.0
- ProductCode: {ABC-123}
- UpgradeCode: (DEF-456)
1.0.0.1
- ProductCode: {ABC-123}
- UpgradeCode: {GHI-789} (Changed)
1.0.0.2
- ProductCode: (JKL-012) (Changed)
- UpgradeCode: {GHI-789}
So from version .0 to .1, the UpgradeCode was modified. From version .1 to .2, the ProductCode was modified. I am now ready to deploy version 1.0.0.3. It has the same ProductCode and UpgradeCode as 1.0.0.2:
1.0.0.3
- ProductCode: (JKL-012)
- UpgradeCode: {GHI-789}
At this point, all earlier versions are installed out there somewhere. So I have some users on v1.0.0.0, some on v1.0.0.1, etc.
The question is, is there any way to configure InstallShield so that I can get all of them back on the same ProductCode and Upgrade code so that going forward, I can run proper updates? By a proper update, I mean that when the setup exe runs, it notifies the user that this is an update and then only updates files as needed.
As it is now, if a user on a version prior to the ProductCode change (<1.0.0.2), and runs 1.0.0.3, it does not recognize this as an upgrade and installs the new version along side the old one. However, if they have 1.0.0.2 (on the new ProductCode) and run 1.0.0.3, it works fine. This is all expected, as I understand that the installer recognized different ProductCodes as different products, but what I need is a way to get everything back in sync with the latest setup file.
Lastly, our setup file includes options to select specific features and a custom option selector. If it does a fresh install, or anything other than a proper upgrade, these panels show up in the installer with the original default settings. We want to avoid having these pop up during an upgrade, which is why it is so important to get the setup file back in sync so that upgrades are upgrades and fresh installs are fresh installs all around. Oh, and we want to avoid having the user uninstall/reinstall the product because the user may not know aforementioned setup options the second time around.
Thanks in advance,
Scott