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.

Answer Summary:
Use Upgrade table
0 Comments   [ - ] Hide Comments


Please log in to comment

Answer this question or Comment on this question for clarity



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.


Answered 03/10/2013 by: jaybee96
Red Belt

  • 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.
  • 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.
  • This is my first time.

    After following this link I can't continue on Attributes, Remove and Action Property .

    Can you do the sample?

    Example of Product codes

    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.?
  • 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 )
    • 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.
  • 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?
  • 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.
  • 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?
  • you can use the same info , just copy paste..
  • okay. I'll test the package. I'll let you know if does work.
  • Thank you jaybee96! It worked! :) I learned something new today.
  • You're welcome! have a great day!
Please log in to comment

Use Upgrade Table. :)

Answered 03/11/2013 by: ajcbasilio
Second Degree Brown Belt

Please log in to comment