This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Minor upgrade does not work
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
‎May 31, 2012
04:13 AM
Minor upgrade does not work
I run minor upgrade on version 5.4.6.0 to version 5.4.9.0.
The upgrade seems to work, all files were installed (upgraded).
But when I'm starting the installation again, I got the dialog "This setup will perform an upgrade of ..." again. I'm expecting the maintenance GUI.
Now I can't even remove it from Add/Remove programs either.
Please help me.
/Magnus
The upgrade seems to work, all files were installed (upgraded).
But when I'm starting the installation again, I got the dialog "This setup will perform an upgrade of ..." again. I'm expecting the maintenance GUI.
Now I can't even remove it from Add/Remove programs either.
Please help me.
/Magnus
(18) Replies
‎May 31, 2012
04:49 AM
What project type is it?
If it is an Basic MSI or InstallScript MSI project, you can:
If it is an Basic MSI or InstallScript MSI project, you can:
- Log what's going on while the minor upgrade is taking place and when you launch the installer again.
- Use the Upgrade Validation Wizard to see if your installation package respects all rules to support a minor upgrade.
‎May 31, 2012
04:30 PM
I have 3 different Basic MSI installation right now that we are working on and we just started on the minor upgrade part and they are all 3 doing the same thing. Once you upgrade to the new build/version it now will only run in upgrade mode. No matter what you do it is now in update mode.
I will try what is asked above to see if any of it helps.
I will try what is asked above to see if any of it helps.
‎Jun 01, 2012
01:30 AM
Yes I'm using Basic MSI project IE 2012, the wizard and logfiles gives me nothing that points in any direction that helps me solve this problem.
I'm still looking for a solution.
(Is this an IS2012 thing, I have not seen this using the IS2011)
I'm still looking for a solution.
(Is this an IS2012 thing, I have not seen this using the IS2011)
‎Jun 01, 2012
05:39 AM
I have still not found any solution of this...
To reproduce this (takes 10 minutes).
0: unzip the attached zipfile, (contains and ism and a test app .exe).
1: Build the attached installation in IS2012 and install the build version.
2: Change version from 5.31.788.006 to 5.31.789.006 and build this version.
3: Install the minor upgrade 5.31.789.006.
4: Start the installation (3) again, now I expect the wizard to be launched in maintenance mode, but it only end up in upgrade mode.
Please help.
(I have just converted this project from IS2011 to IS2012, if that helps)
To reproduce this (takes 10 minutes).
0: unzip the attached zipfile, (contains and ism and a test app .exe).
1: Build the attached installation in IS2012 and install the build version.
2: Change version from 5.31.788.006 to 5.31.789.006 and build this version.
3: Install the minor upgrade 5.31.789.006.
4: Start the installation (3) again, now I expect the wizard to be launched in maintenance mode, but it only end up in upgrade mode.
Please help.
(I have just converted this project from IS2011 to IS2012, if that helps)
‎Jun 01, 2012
10:18 AM
Make sure if you are following his steps above that you test it on a test machine because after you do it you will also not be able to uninstall.
I can duplicate it at will with the three new MSI installations we are developing in IS2012 right now.
After doing the upgrade and getting stuck where it will only want to upgrade I thought maybe the system just did not think it upgraded so I went back and tried to run the previous install again but it displayed and error that the product was already installed and would not run.
This problem is really bad for me and my team right now as we are getting ready for beta and I cannot let beta go with this error. I'm hoping it is just user error on my part but the fact that another team member has the same issue with a completely different install leads me to think not.
I can duplicate it at will with the three new MSI installations we are developing in IS2012 right now.
After doing the upgrade and getting stuck where it will only want to upgrade I thought maybe the system just did not think it upgraded so I went back and tried to run the previous install again but it displayed and error that the product was already installed and would not run.
This problem is really bad for me and my team right now as we are getting ready for beta and I cannot let beta go with this error. I'm hoping it is just user error on my part but the fact that another team member has the same issue with a completely different install leads me to think not.
‎Oct 08, 2012
06:09 AM
I still don't know whats wrong in the ism, but when running FixIt program, it manage to solve the problem.
http://support.microsoft.com/fixit
See also: http://support.microsoft.com/kb/971187
If anyone could give me a hint what I shall do in the InstallShield project, I would be happy.
http://support.microsoft.com/fixit
See also: http://support.microsoft.com/kb/971187
If anyone could give me a hint what I shall do in the InstallShield project, I would be happy.
‎Feb 28, 2013
03:37 AM
After a lot of investigations it seems to be that the installer sets the Preselected property to "1", and I don't know why.
This property is used in SetupResume Condition in User Interface Sequence: "Installed And (RESUME Or Preselected) And Not PATCH"
How can I fix this?
This property is used in SetupResume Condition in User Interface Sequence: "Installed And (RESUME Or Preselected) And Not PATCH"
How can I fix this?
‎Feb 28, 2013
03:52 AM
It is due to the way msiexec is called when performing a minor upgrade.
Your setup.exe calls msiexec and sets the REINSTALL property. Then the Preselected property gets set to "1".
MSDN says:
It means the Preselected property is handled internally. As far as I know, it is an expected behaviour.
Did you run the Minor Upgrade Validation Wizard?
Your setup.exe calls msiexec and sets the REINSTALL property. Then the Preselected property gets set to "1".
MSDN says:
The installer sets the Preselected property to a value of "1" during the resumption of a suspended installation or when any of the following properties are specified on the command line. If the Preselected property has been set to 1, the installer does not use the Condition table to evaluate the selection of features.
It means the Preselected property is handled internally. As far as I know, it is an expected behaviour.
Did you run the Minor Upgrade Validation Wizard?
‎Feb 28, 2013
04:38 AM
Thanks!!
I can see in the msi log that REINSTALL=ALL is set from command Line, but can't find how to remove this "REINSTALL=ALL" from command line?
MSI (c) (0C:84) [11:33:18:770]: Command Line: REINSTALL=ALL
I can see in the msi log that REINSTALL=ALL is set from command Line, but can't find how to remove this "REINSTALL=ALL" from command line?
MSI (c) (0C:84) [11:33:18:770]: Command Line: REINSTALL=ALL
‎Feb 28, 2013
04:47 AM
You can't, and you shouldn't even try.
Users are not supposed to change the feature selection when performing a minor upgrade.
The minor upgrade is in actual fact a reinstallation of the same product, which only upgrades the components that have changed.
You can try to launch a minor upgrade from the command-line, in the same way as your setup.exe launcher does:
It would be something like:
msiexec /i "YourProduct.msi" REINSTALL=ALL REINSTALLMODE=vomus IS_MINOR_UPGRADE=1
What you need to do is use the minor upgrade validator to see if your setup can perform a minor upgrade at all.
So why would you try to reset the REINSTALL property? To perform a "standard" installation? If that's the case, you might want to go for a major upgrade.
Users are not supposed to change the feature selection when performing a minor upgrade.
The minor upgrade is in actual fact a reinstallation of the same product, which only upgrades the components that have changed.
You can try to launch a minor upgrade from the command-line, in the same way as your setup.exe launcher does:
It would be something like:
msiexec /i "YourProduct.msi" REINSTALL=ALL REINSTALLMODE=vomus IS_MINOR_UPGRADE=1
What you need to do is use the minor upgrade validator to see if your setup can perform a minor upgrade at all.
So why would you try to reset the REINSTALL property? To perform a "standard" installation? If that's the case, you might want to go for a major upgrade.
‎Mar 01, 2013
12:37 AM
Now have found a solution of this problem.
If I change
ReinstallModeText=omus
to
ReinstallModeText=vomus
the upgrade suddenly works fine. You can try this in the attached file ATestInstall.zip (found in this early thread).
But I still want to know why ReinstallModeText=omus generates this bad behavior, is it a bug in InstallShield or msiexec, or s it something else in this ism-project that makes the "omus" setting fail?
If I change
ReinstallModeText=omus
to
ReinstallModeText=vomus
the upgrade suddenly works fine. You can try this in the attached file ATestInstall.zip (found in this early thread).
But I still want to know why ReinstallModeText=omus generates this bad behavior, is it a bug in InstallShield or msiexec, or s it something else in this ism-project that makes the "omus" setting fail?
‎Mar 01, 2013
01:19 AM
According to http://helpnet.flexerasoftware.com/isxhelp19/helplibrary/IHelpISXProperties.htm, the ReinstallModeText should not be relevant for a Minor Upgrade. But as you might have understood in my previous reply, REINSTALLMODE is relevant!
As stated in the documentation, ReinstallModeText and REINSTALLMODE are related: the value of ReinstallModeText is used to set the REINSTALLMODE when you click on Repair in a maintenance scenario.
So, if I follow your reasoning, the REINSTALLMODE property might be erroneously set to "omus" during your minor upgrade.
When performing a minor upgrade, the "v" in the REINSTALLMODE property is required. "v" means "runs from source and recaches local package"
Why don't you try the following:
[LIST=1]
Leave the ReinstallModeText property set to its default value (omus) in the Property Manager
Rebuild your installation package
Try to launch your minor upgrade using msiexec
Then analyze your logfile to see whether the REINSTALLMODE property changes during the upgrade. It shouldn't!
If it is reset to omus during the upgrade, then try to see which action resets it. You should be able to narrow it down.
Did you try the minor upgrade validation tool?
As stated in the documentation, ReinstallModeText and REINSTALLMODE are related: the value of ReinstallModeText is used to set the REINSTALLMODE when you click on Repair in a maintenance scenario.
So, if I follow your reasoning, the REINSTALLMODE property might be erroneously set to "omus" during your minor upgrade.
When performing a minor upgrade, the "v" in the REINSTALLMODE property is required. "v" means "runs from source and recaches local package"
Why don't you try the following:
[LIST=1]
msiexec /i "Blabla.msi" REINSTALL=ALL REINSTALLMODE=vomus IS_MINOR_UPGRADE=1 /L*vx C:\Logfile.txtor
setup.exe /V"/L*vx C:\Logfile.txt"
If it is reset to omus during the upgrade, then try to see which action resets it. You should be able to narrow it down.
Did you try the minor upgrade validation tool?
‎Mar 01, 2013
02:28 AM
Hello, thanks for helping me!! So, if "v" is required in minor upgrade, your reasoning sounds to be correct.
I don't really understand "runs from source and re-caches local package", could you please explain?
I have tried the upgrade validation tool, but it give me nothing, the only thing I changed between the releases is actually the version number.
BR
Magnus
I don't really understand "runs from source and re-caches local package", could you please explain?
I have tried the upgrade validation tool, but it give me nothing, the only thing I changed between the releases is actually the version number.
BR
Magnus
‎Mar 01, 2013
05:10 AM
OK, running as suggested above give me folowing logFile:
[FONT=Courier New][SIZE=1]Info 2726.Action not found: SetMediaPackagePathRegistryEntry.
Action ended 12:06:59: SetMediaPackagePathRegistryEntry. Return value 0.
MSI (c) (F8:1C) [12:06:59:433]: PROPERTY CHANGE: Modifying REINSTALLMODE property. Its current value is 'vomus'. Its new value: 'omus'.
Action ended 12:06:59: SetupResume. Return value 1.
[/SIZE][/FONT]
Need help from here finding where REINSTALLMODE resets to "omus"
[FONT=Courier New][SIZE=1]Info 2726.Action not found: SetMediaPackagePathRegistryEntry.
Action ended 12:06:59: SetMediaPackagePathRegistryEntry. Return value 0.
MSI (c) (F8:1C) [12:06:59:433]: PROPERTY CHANGE: Modifying REINSTALLMODE property. Its current value is 'vomus'. Its new value: 'omus'.
Action ended 12:06:59: SetupResume. Return value 1.
[/SIZE][/FONT]
Need help from here finding where REINSTALLMODE resets to "omus"
‎Mar 01, 2013
05:39 AM
About the "v" in REINSTALLMODE: As you know, when installing an MSI package, one slightly adapted version of the MSI package is cached on the local machine (in C:\Windows\Installer).
When reinstalling or repairing product, you can ask Windows Installer to re-cache the local MSI package.
As explained earlier, the minor upgrade consists of reinstalling the same product with a package with the same ProductCode, but a higher version.
If everything works, you would expect the product to be installed as if it had been directly installed with the latest package. Therefore, the local MSI package needs to be recached with the latest version so you can perform a maintenance, a repair or a deinstallation.
As you probably know, you need to tell Windows Installer how to behave some files/registry entries already exist on the target PC. Shall they be overwritten or not? What rules shall be applied?
This is actually the main purpose of the REINSTALLMODE property. On top of that, it allows you to tell MSI to recache the local package.
With that in mind, I would suggest you type msiexec /? in a command prompt and read the description of the various parameters.
As for you logfile, just post it on the forum.
It's a pleasure to help when people learn something from it. Maybe I should start a consultancy business 😉
When reinstalling or repairing product, you can ask Windows Installer to re-cache the local MSI package.
As explained earlier, the minor upgrade consists of reinstalling the same product with a package with the same ProductCode, but a higher version.
If everything works, you would expect the product to be installed as if it had been directly installed with the latest package. Therefore, the local MSI package needs to be recached with the latest version so you can perform a maintenance, a repair or a deinstallation.
As you probably know, you need to tell Windows Installer how to behave some files/registry entries already exist on the target PC. Shall they be overwritten or not? What rules shall be applied?
This is actually the main purpose of the REINSTALLMODE property. On top of that, it allows you to tell MSI to recache the local package.
With that in mind, I would suggest you type msiexec /? in a command prompt and read the description of the various parameters.
As for you logfile, just post it on the forum.
It's a pleasure to help when people learn something from it. Maybe I should start a consultancy business 😉
‎Mar 08, 2013
03:43 AM
Hi Magnus,
I assume you managed to solve your problem with the REINSTALLMODE property.
Am I right in thinking that it was due to the Next button of the SetupResume dialog sending a ReinstallMode event with [ReinstallModeText] as argument?
Regards,
Reureu
I assume you managed to solve your problem with the REINSTALLMODE property.
Am I right in thinking that it was due to the Next button of the SetupResume dialog sending a ReinstallMode event with [ReinstallModeText] as argument?
Regards,
Reureu