Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

upgrade triggers resume dialog


14 replies to this topic

overlordchin

overlordchin
  • Full Members
  • 100 posts

Posted 23 July 2012 - 19:28

This is an odd one. We have several basic MSI installers and 1 and only 1 now seems to trigger a resume when performing a minor upgrade.

The issue is that if we bump the version number to be higher it was not upgrading at all for some reason. The build number is the only thing that (not including binaries)changed and we use a 4 digit build number for example 0114.
If I bump our version to 0201 its not considering it an upgrade. If I change it to 5 digits which we were planning on doing it does consider it an upgrade and throws the prompt this will perform an upgrade of the product. If you click yes you are greeted by the resume setup dialog after seeing the extracting msi phase complete. If you progress through the dialogs and finish and examine the binaries none of them have been replaced with newer versions.

I believe this is partially b/c we violated the upgrade rule by removing a component and not making it a major upgrade. I don't mind doing this but I would like to understand what else we are doing wrong. If I rev the product and package guids and bump the version and make an entry for the upgrade table the upgrade works just fine. However, a byproduct of that is the old install will no longer detect the newer version since its a different package and allows both installs on the system at the same time (tries to overwrite the binaries and creates a 2nd entry in add/remove programs).

Where if the product/package guids are the same it says I have detected a newer version of the product blah blah blah.

Since I cannot go back and change the last release what can I do to the current one to preserve the downgrade prevention and allow the upgrade to work properly?

Edited by overlordchin, 23 July 2012 - 19:29.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 26 July 2012 - 13:55

Speaking of codes/GUIDs:
PackageCode - must always be changed for each build (InstallShield typically auto-generates a random PackageCode for you during build, unless you turned this option off)

ProductCode - if unchanged, it's a small or minor update (depending on whether the version number changes) and must follow the component rules. Removing a component in a small or minor update confuses Windows Installer and this explains the files not being updated properly. You should also see SELMGR errors in the log. It doen't explain the dialog behaviour, but a log will tell you the values of all properties. Compare them to a working update, and to the conditions on the different Welcome/Resume dialogs in the UI sequence.

UpgradeCode - identifies a product family and can be used to prevent a downgrade in a Major Upgrade (the problem you are seeing if you change the ProductCode). Newer versions of InstallShield automatically create a (hidden by default) Upgrade entry to prevent downgrades. If this doesn't exist in your old product release, it's indeed too late to fix it (unless you first send a small update with everything unchanged and the prevent-downgrade entry added, before you ship the major upgrade).

As a workaround I'd suggest using a small or minor update, but don't remove the component, thus avoiding breaking the component rules. Instead, set the component's condition to 0 (meaning FALSE) and its "re-evaluate condition" flag to yes. At the same time, add the "prevent downgrade" entry to prepare for future major upgrades.
Use InstallShield's upgrade validation to make sure you're not breaking any other minor update component rules.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 26 July 2012 - 13:59

P.S. if the component to be removed includes large files, you can replace them with small dummies to reduce setup size.

overlordchin

overlordchin
  • Full Members
  • 100 posts

Posted 26 July 2012 - 14:47

that is brilliant. Thanks so much Stefan I will try that right away

overlordchin

overlordchin
  • Full Members
  • 100 posts

Posted 26 July 2012 - 18:51

I tried what you suggested and it is not as of yet working. I set the condition to 0 and set it to re-evaluate the conditional. It is acting as though none of the key files versions have increased and just leaves the old files present on the system. However, the key file value in the old release is 6.0.0.97 and the new one is 6.0.2.11 so it is definitely newer and not being replaced. I am about to try the validate bit you mentioned to see if that sheds any light on this.

overlordchin

overlordchin
  • Full Members
  • 100 posts

Posted 26 July 2012 - 18:55

Aprrently we are missing more components than I thought. Ill have to put those back as well will report back shortly

overlordchin

overlordchin
  • Full Members
  • 100 posts

Posted 26 July 2012 - 19:08

what if one of the pieces removed was a merge module? is there a work around for that as well?

I ran the validation tool a few times and it says some files are missing but not in the remove table (related to the merge module)

Then it says it will perform a minor upgrade of the previous release but still does not actually remove the files with the new conditions or install any new files though i did see the "copying new files" phase appear for the first time in this ordeal

Edited by overlordchin, 26 July 2012 - 19:23.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 26 July 2012 - 19:25

Either put the merge module back in, or add a dummy component with the same ComponentId and key file as was in the merge module. I think you'll also habve to maintain the same destination setting in the Directory table. Note that some entries in merge modules get the module id appended 8which InstallShield sometimes doesn't display), so open the old .msi file in direct edit mode to see the real IDs and names.

overlordchin

overlordchin
  • Full Members
  • 100 posts

Posted 26 July 2012 - 19:43

Just to see if it would work.I put the module back in and it actually upgraded properly. So I am going to keep following your advice and try to make a dummy module now. Thank you so much for your help.

overlordchin

overlordchin
  • Full Members
  • 100 posts

Posted 30 July 2012 - 01:52

Thanks again Stefan, that worked perfectly.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 July 2012 - 09:13

Glad to hear that you got it working.
Now be sure to add a "prevent doengrade" Major Upgrade entry to prepare for future updates smile.gif

overlordchin

overlordchin
  • Full Members
  • 100 posts

Posted 30 July 2012 - 14:03

Thanks for the reminder. But I do have one more question for you. So with all of those fixes the app upgrades just fine unless it is run as a chained msi. It seems to not perform the minor upgrade when run as a chained msi.

I have searched around and found several other people with this problem. I tried setting the install condition to: Not Installed OR REINSTALL><"FeatureName"

which did not seem to help at all. we are chaining the msi and supressing the UI for the installer (qn)

overlordchin

overlordchin
  • Full Members
  • 100 posts

Posted 30 July 2012 - 19:22

It appears to not be launching period. Suspect the install condition in the chained msi


Apparently this is by design after reading Robert Dickau's white paper on chained msi packages. However, several posts I have seen lead me to believe it is possible to correct this and have the chained msi function on a minor upgrade. Most people indicate a custom action can change the property needed to get it to work. I assume detecting the old install and then dinking the install properties property to include reinstallmode and reinstall but I am not sure what the property is called or where to look for that.

Edited by overlordchin, 30 July 2012 - 20:20.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 31 July 2012 - 11:32

Sorry, I don't know the answer, I haven't updated via chained msi.

overlordchin

overlordchin
  • Full Members
  • 100 posts

Posted 31 July 2012 - 13:11

That's alright just going to have to use it the way it was intended =)