cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
LoupiNet
Level 3

Major Upgrades exits the installation

Hello!

I have a Setup project that needs to uninstall 3 old applications before installing itself.
This setup project is designed to be run in silent mode and perform the same actions as in UI mode.

So, to achieve this i added 3 major upgrade items in the upgrades section.
These old software install packages were made with Wise. One of them is generating problems when being uninstalled by my project: it closes the installation, without any error or warning!!! If i remove this specific upgrade item, everything goes well.

Also, if i try to manually uninstall that problematic package, using control panel/add remove programs or msiexec.exe from a command line, everything goes well.

I also tried calling a VBScript in my UI sequence to remove it, and everything works there too. (But i need to support silent mode! 😞 )

I tried this with both MSI InstallScript and Basic MSI projects and the same thing happens.

Please help! There must be a solution.
Regards

Louis-Pierre beaumont
Labels (1)
0 Kudos
(6) Replies
mumbles
Level 7

Maybe consider running a custom action that calls

msiexec /x {productcode} /qn

and waits for completion?
0 Kudos
Cary_R
Level 11

Hi Louis-Pierre,

I would actually suggest generating a logfile of the installation, and posting it here. Very likely something is taking place during the RemoveExistingProducts action.
0 Kudos
LoupiNet
Level 3

Hi back,

Mumble, as i stated in my first post, my installation program needs to run in silent mode. I already tried calling msiexec manually to remove the erroneous component, but i cannot do that in the installation execute sequence: there is a kind of mutex on installation execute sequence. Maybe i'm missing something here too.

Cary, i attached the log file from the installation in this new post. At the beginning of the log file, we can see that the erroneous product (Labcal Fingerprint ActiveX) has ALLUSERS = 0, and not the others. Also, RemoveExistingProducts is only called for that erroneous product.

Thank you for the support
Sincerely

Louis-Pierre Beaumont
0 Kudos
LoupiNet
Level 3

I finally found a solution to my problem!

The old softwares to upgrade were not installed the same way.
One of them was intalled "per user", and the two others "per machine".
They had different ALLUSERS values.

The standard function SetAllUsers called at the beginning of the installation
execute sequence was enumerating these old softwares and related products,
then setting the ALLUSERS value to 0!

After that, FindRelatedProducts could only find one of them, the one with ALLUSERS = 0.

To remedy that, i added registry system searches for the old softwares product codes.
Then, after FindRelatedProducts, i added a custom action that sets the ALLUSERS property to 1. After that, i added
two other custom actions that set the ActionProperty of their related upgrades,
with a condition based on the system searches for their product codes.

Tada!!! Now i can uninstall the old **** from my MSI, and i can do this silently! 🙂

Have a nice day! 🙂
Louis-Pierre Beaumont
0 Kudos
GriffinSilver
Level 3

Hi Louis-Pierre,

I am encountering a similar issue where my previous Basic MSI was installed per-user and now I am trying to force the new install as per-machine. Using a Major Upgrade item to fully uninstall then reinstall, it is finding the existing per-user install and automatically setting the ActionProperty but not actually removing it. Did you have to change something else to get the files and registry entries uninstalled? Any additional incite is appreciated.
0 Kudos
LoupiNet
Level 3

Hi Griffin,

In the installation execute sequence, after FindRelatedProducts, i added a "Set Property" custom action that sets the ALLUSERS property to 1.

Also, my installation program must be run by an administrator. Maybe your old installation was installed by another user, and you do not have the rights to remove it if you are not an admin.

Sincerely

Louis-Pierre Beaumont
0 Kudos