/build/static/layout/Breadcrumb_cap_w.png

How to uninstall multiple MSI through custom action in System Context.

Hello All.

I created a script that will get the Product codes of application that will uninstall first before installing the application.

There are 7 MSI applications  installed by user that will uninstall first. 

Now I'm done creating the script and it executed well in manual run and upon applying in custom action in my package I didn't run.

Do you have any suggestions for this scenario?

I'm using Installshield for this application applied the custom action through transform.


0 Comments   [ + ] Show comments

Answers (2)

Answer Summary:
Use Upgrade table
Posted by: jaybee96 11 years ago
Red Belt
0

hmm.. seems to me like a regular  "standard" action called RemoveExistingProducts  that you are trying to duplicate...

I would recommend to use Installshield's Upgrade wizard to create the "Major" upgrades items in the upgrade table for the products you want to uninstall / replace..

should be no more than 3 clicks per product  instead of a uncontrolled VBScript.

if you do not have an ISM.. then follow the major upgrade procedure.

 


Comments:
  • Hmmm. I'll try.
    This is the scenario.
    I have Java 6 update 41 to package. this application should update the earlier updates of Java 6 but unfortunately only update 10 to 39 will update but the versions 6.0 to update 7 it didn't update it only adds to the system/new line in ARP. So I decide to do a script to loop the msiexec /x {GUID} for uninstall to install the update 41. - ajcbasilio 11 years ago
  • you don't need to.. just add the upgradecodes to the upgrade table ( And don't forget to populate the SecureCustomProperties Property with the PUBLIC property you created in the Upgrade table. - jaybee96 11 years ago
  • This is my first time.

    After following this link I can't continue on Attributes, Remove and Action Property .
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa372379(v=vs.85).aspx

    Can you do the sample?

    Example of Product codes
    {CD95F661-A5C4-44F5-A6AA-ECDD91C240D3}
    {CD95F661-A5C4-44F5-A6AA-ECDD91C240D5}

    Upgrade Table
    UpgradeCode - {CD95F661-A5C4-44F5-A6AA-ECDD91C240D3}
    VersionMin - is it okay to be blank?
    VersionMax - is it okay to be blank?
    Language - is it okay to be blank?
    Attributes - A little bit confuse on what attributes to put? some help on this
    Remove - is it okay to be blank?
    ActionProperty - this will fall the SecureCustomProperties Property what will I do?

    ActionProperty - When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. The property specified in this column must be a public property and the package author must add the property to the SecureCustomProperties property. Each row in the Upgrade table must have a unique ActionProperty value. After FindRelatedProducts, the value of this property is a list product codes, separated by semicolons (;), detected on the system.

    I hope you can help me.? - ajcbasilio 11 years ago
  • VersionMin = blank
    VersionMax = your current version
    Language = leave blank
    Attributes = 1
    Remove = blank
    ActionProperty = ( This must be a PUBLIC property ..in UPPERCASE, this should also be appended in the SecureCustomProperties Property ) - jaybee96 11 years ago
    • Simple Steps to a sometime confusing topic. I had to delete my MST when it was not running the upgrade correctly, Applied a blank MST with the above modifications and upgrade was finally able to remove previous version of vendor app that contained a totally different Upgrade code as the latest version. - ekgcorp 6 years ago
  • For the UpgradeCode column, I should get all the 7 upgrade code of all applications to remove or the product code will entry? Sorry I'm confuse.

    For the ActionProperty, I should have 7 unique (created by me) since I have 7 product code to remove?

    VersionMax is my Java 6 update 41? All the same for the 7 product codes to remove? - ajcbasilio 11 years ago
  • I think that most Java runtimes are MSI and therefore have the same upgradecode.
    But you need to check if that is a correct assumption.
    but you can add as many rows to the upgrade table as needed. - jaybee96 11 years ago
  • I got all upgradecodes of Java 6.0 to Java 6.0 update 7. They have different upgradecodes but in the update 10 to 41 they have the same upgradecode.

    Now I have these upgradecodes these will populate in my Upgrade Table right?

    I checked the Upgrade table of java update 41, it has entry of upgradecode of all updates from 10 to 39 but the attributes sets to 256 and VersionMin is 0, is it okay to pattern the Attributes and VersionMin for the 7 upgradecodes? - ajcbasilio 11 years ago
  • you can use the same info , just copy paste.. - jaybee96 11 years ago
  • okay. I'll test the package. I'll let you know if does work. - ajcbasilio 11 years ago
  • Thank you jaybee96! It worked! :) I learned something new today. - ajcbasilio 11 years ago
  • You're welcome! have a great day! - jaybee96 11 years ago
Posted by: ajcbasilio 11 years ago
Second Degree Brown Belt
0

Use Upgrade Table. :)

 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ