0

I am having an issue, for the first time, with a minor upgrade (I think this is the correct term?) for my Installshield MSI installer. I changed the necessary values in the installer as I have done many times before: set "Product Version" from "2.0.12" to "2.0.13" and updated the component file/assembly version from "2016.12.19.1415" to "2017.1.30.1037". However, when I run the upgrade, the component is not upgraded from the 2016 version to the 2017 version.

Below is as much information about the component as I got from the MSI log:

MSI (s) (4C:10) [16:01:32:848]: Component: EAS.Common.SignalR.Client.dll; Installed: Local; Request: Null; Action: Null

edit: I reverted to the previous version of the installer and added the updates. The upgrade now works properly. So I think it has something to do with new components I added.

Andy Clark
  • 516
  • 1
  • 4
  • 21

1 Answers1

2

Most people are better off using the simpler more flexible albeit less efficient Major Upgrades. Minor Upgrades require a strong understanding of the component rules and strict limitations in what can and can't be done. This requires discipline by the development team in what they ask the setup developer to do.

If you are going to do minor upgrades, make sure you use the MSIENFORCEUPGRADECOMPONENTRULES property to fully test your compliance. This might help you find bugs rather then installs that seem to work but don't end the way you expect.

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100
  • The issue was that I removed a component that existed in previous installs. I set the component to have a condition "1=0" and renamed it to "DONOTDELETE_{name}" – Andy Clark Feb 06 '17 at 14:17
  • I'd be careful about renaming the Component. MSI really doesn't like primary keys changing. FYI, be sure to read about "puncturing" components using the Transitive Component bit if you are using MSI < 4.5. For >=4.5 read up on MSIUNINSTALLSUPERSEDEDCOMPONENTS. http://stackoverflow.com/questions/23102970/remove-file-during-minor-upgrade – Christopher Painter Feb 06 '17 at 14:44
  • Word of warning regarding renaming components and other primary keys: https://blogs.msdn.microsoft.com/windows_installer_team/2007/03/07/arbitrary-labels-used-as-primary-keys-must-not-be-changed-between-versions/ – Christopher Painter Feb 06 '17 at 14:46
  • As my final thought, any one doing Minor Upgrades and Patches really, really needs to know this stuff like a god. I've only met a few of these people in my lifetime and they all worked in the trenches at Microsoft. For mere mortals (myself included) stick to Major Upgrades. It will end better. – Christopher Painter Feb 06 '17 at 14:47