Software Deployment Question

How to remove existing products with MSI

01/22/2015 4233 views
Hi Folks,

There are several previous versions of the same product including the version i am packaging now. The need is to remove any existing previous versions or the current version with this new package. How do i do that? Is it possible to do that with Upgrade Table? If yes then how?

Thanks in advance.

1 Comment   [ + ] Show comment


  • Two different packages cannot have the same product code.

Community Chosen Answer

Configure upgrade table like this

Answered 01/23/2015 by: jagadeish
Red Belt

  • Hi Jagadeish,
    I have version 4.95 to package. But, there is same version 4.95 already installed on User's Machine manually. My Package needs to uninstall this existing one and install the Package. Will the method you mentioned in the link will help do that?
    The reason i am asking this is because i had tried it already, but it only uninstalls 4.91 and not any other versions. I checked the Upgrade code for all the previous versions and confirmed they are same. I also checked that RemoveExistingProduct lies in between InstallValiate and InstallInitialize. Am i missing anything else?
    • Please state whether you have changed product code, package code and/or upgrade code? Try examining a verbose log of an attempted install to see what is going on.
      • I have not changed any code. I have filled the Upgrade Table as exactly as mentioned by Jagadeish in the link above. I have also tried many other ways around but no luck. I am not sure whats going wrong.

All Answers


all you have to do is enter the upper and lower versions, in your case if 4.95 is the one your packaging and you need to remove that version, make sure its included. You will get an ICE error, but you can ignore it. You will want the attribute of the upgrade table to be 772 (or 773) to look for min and max values (upper and lower). Also, what is in your remove column of the upgrade table??


Answered 01/25/2015 by: Badger
Red Belt

  • Hi Badger,
    Remove Column is Blank. I had tried using "All", but no luck.
    • blank is good.... blank will set in effect be REMOVE=ALL. you def have the upgrade codes in the upgrade table?? You will have to use all the appropriate upgrade codes
      • Hi Badger,
        I copied the Upgrade Code from Property table and pasted in Upgrade Table.
        VersionMin = 2.6
        VersionMax = 4.9
        Language = 1033
        Attributes = 773
        Remove = NULL
        ActionProperty = UPGRADE_49

        I alsio included the ActionProperty in SecureCustomProperties.

        No luck yet.
      • have you checked ALL of the upgrade codes for the diff versions??
      • also, what is the lang propery in the property table of the MSI's?
      • Yes Upgrade Code for all previous versions is same. Also the Language property is 1033 for all previous versions
      • ok, what happens if you try running your new installer (with GUI). also, loging might be useful
      • Seems like the issue is not with Upgrade Table. The earlier versions were installed and not specified whether per user or per machine. They happen to install with User context.
        So, in order for MSI to do the In-Place Upgrade, all the previous versions had to be installed per machine if the current version is installing per machine. Is it true?
      • Wow, that's asking something.
        messy, I have just done some testing here my stuff is OK, but I define per machine installs.
        so, in theory, if you have installed it as a user install for user 1, then log in as admin2, the installer will NOT detect the prev per user install. so, no upgrade will occur. oh dear, who made that blunder??? not that we are a blame society of course, but, someone is going to have to clean that up. This is why per user installs are not a great idea. clean it up, go with machine installs now, making sense, and easier for future upgrades.
      • Hi Badger,

        The installs already persist on Users' Machine, and my package should uninstall those prior to installing this new version Package. I guess the only option now I have is to run a custom vbscript to uninstall the previously installed MSI. The CA should run as first action, but with my previous experience, it was not working. The CA was failing.
      • per user install, you have to do a per user uninstall.... What number of machines and users are you talking about?
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