How to remove existing products with MSI
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.
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. - EdT 9 years ago
Answers (2)
Please log in to answer
Posted by:
jagadeish
9 years ago
Configure upgrade table like this
http://www.itninja.com/question/how-to-use-upgrade-table-in-installshield-adminstudioComments:
-
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? - shrestha.rajiv.k 9 years ago-
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. - EdT 9 years ago
-
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. - shrestha.rajiv.k 9 years ago
Posted by:
Badger
9 years ago
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??
Comments:
-
Hi Badger,
Remove Column is Blank. I had tried using "All", but no luck. - shrestha.rajiv.k 9 years ago-
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 - Badger 9 years ago
-
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. - shrestha.rajiv.k 9 years ago -
have you checked ALL of the upgrade codes for the diff versions?? - Badger 9 years ago
-
also, what is the lang propery in the property table of the MSI's? - Badger 9 years ago
-
Yes Upgrade Code for all previous versions is same. Also the Language property is 1033 for all previous versions - shrestha.rajiv.k 9 years ago
-
ok, what happens if you try running your new installer (with GUI). also, loging might be useful - Badger 9 years ago
-
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? - shrestha.rajiv.k 9 years ago -
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. - Badger 9 years ago -
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. - shrestha.rajiv.k 9 years ago -
per user install, you have to do a per user uninstall.... What number of machines and users are you talking about? - Badger 9 years ago