Upgrade Code / Product Code ...
Hi,
I have a scenario where a MSI was released to users without applying an upgrade code to the product assuming a one-off installation.
Now, I need to apply an upgrade to the MSI without changing the product code.
when the user installs, he gets prompted that the MSI with the same product code is already installed and it needs to be un-installed before this one can be installed.
I don't want users to take 2 actions, initially un-installing MSI and later re-installing the same.
The new MSI which will be released will have an upgrade code applied within but with the same product code.
------------------------------------------------------------------------------------------------
Is there a way I can automatically un-install the already intalled MSI and continue with the installation of this NEW MSI when the user installs this new MSI with least interruption to the user by using a custom action or using a script ?
Thanks
Comments
Is the new MSI always going to be run with full UI
The simplest solution relies on the new MSI always running with full UI. You could add a custom action to run MSIEXEC /X {product code of old MSI} to the UI sequence, and make sure the CA is set as synchronous, so that the install waits for completion before continuing. You could also apply a condition to this custom action using the UILevel property so that it only runs with full UI - I will leave you to look it up in MSI.CHM to get the right value for the UILevel when using full UI.
The alternative is to use an EXE wrapper which first uninstalls the existing MSI, and then installs the new one, in sequence.
The big problem you might face is if the existing MSI requires a reboot after uninstall before you can install the new one. In that case, you may have to add code to shut down any running services and unlock any locked files, so that a reboot is not necessary.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
You can do upgrades without
You can do upgrades without changing the product code. That would be a minor upgrade. Although you are limited to what you can modify but adding some files and registry keys would be fine. Depends what is in your update.
More information here:
https://www-secure.symantec.com/connect/articles/handling-upgrades-and-patches-wise-package-studio
Eh?
Just read your original posting again. It doesn't make sense ...
All MSI installs have an Upgrade code, so I don't understand what relevance you are attaching to your remark that the original MSI was deployed without an Upgrade code. It surely must have one.
Then as David states, you can indeed create a minor upgrade without changing the product code, but you DO need to quote the previous version of the MSI in your upgrade configuration.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
MSI was released to users
MSI was released to users without applying an upgrade code
Ed,
I guess "they" removed the UpgradeCode property before production.
Are you not required to do a reinstall for minor upgrades?
This ranks high on the stupid scale
Why remove the Upgrade code? That has to be one of the craziest ideas I've heard for a long while.
Good point about the reinstall. Too much coding - brain is frazzled this week!
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
use REINSTALLMODE property
Hi,
You can do a kind of repair to the existing MSI using a forced repair. Also use REINSTALLMODE=VOMUS, which will recache thenew MSI in installer folder.
BR,
Piyush
Piyush Nasa Altiris Certified Professional (ACP)
http://msiworld.blogspot.com/
MSIEXEC /I MSI REINSTALL=ALL REINSTALLMODE=vomus
This seems to have fixed the issue. The new MSI loads with Re-install mode and installs fine. I am left with only one question, if there was a way to install the MSI to the end user without him getting to go to a command prompt or a external exe to load the MSI with MSIEXEC command. Is there a way if I can create a single exe file which has MSI within encapsulated and automatically runs the command msiexec.exe /I {} REINSTALL=ALL REINSTALLMODE=vomus on the first click.. This will enable us to release only one exe file rather than 2 more separate files. Thanks.Can you shed more details on
Can you shed more details on this approach or a article you may have on this solution ? How can I package the new MSI to be automatically installed on the user's PC without him to take an additional step of un-installing the old MSI. {The old MSI and the new MSI have a same product code}.
Currently I am left with a message prompting the user to un-install or configure the existing MSI as an already MSI with the similar PRODUCT CODE already exists on the machine. Which is true as a already installed Product with a similar product code already exists.
Thanks
Look up REINSTALLMODE in the MSI.CHM help file
The MSI.CHM help file is a very useful resource for researching these issues.
You will need to set the REINSTALL and REINSTALLMODE properties on the msiexec command line for your newer MSI.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
No
Have you tried setting REINSTALL and REINSTALLMODE in the property table?
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
Would you like to reply?
Login or Register to post your comment.