Uninstall old version during MSI install
How does everyone else go about uninstalling old versions of software that you repackage? I could easily do it with a vbscript but I would like to get into doing it in my msi.
I'm thinking you need to pull the uninstall string from the uninstall regkey and then execute it.
Also, I'm looking through the Adobe Reader 6.0.1 MSI to see how they do it and it is calling a custom script, is there a way to see what the custom script is doing? All I see in Wise is "Set Property UNINSTALL_STRING to [ACRO5_UNINSTALLER] (SetUninstStringAcro5)
I'm thinking you need to pull the uninstall string from the uninstall regkey and then execute it.
Also, I'm looking through the Adobe Reader 6.0.1 MSI to see how they do it and it is calling a custom script, is there a way to see what the custom script is doing? All I see in Wise is "Set Property UNINSTALL_STRING to [ACRO5_UNINSTALLER] (SetUninstStringAcro5)
0 Comments
[ + ] Show comments
Answers (12)
Please log in to answer
Posted by:
plangton
20 years ago
Depends if the previous version as an MSI or not ... if it was then its easy:
What I do: Using Installshield Admin Studio, I get the Upgrade code of the MSI I want to uninstall, add it to the upgrade code of the new package, and in direct editor, in the Upgrade table, I add an entry with the upgrade GUID in the Upgrade code field, set versions to affect, and set the attributes to be 4 - you also have to create a property called SecureCustomProperties and make the value equal to whatever you had in the ActionProperty field of the upgrade table - sounds complicated but its pretty easy I think.
If its not an MSI, then I use a VBScript to run a custom action only on install, and try to figure out how to silently uninstall the previous version of the app, sometimes its simple, sometimes its nigh on impossible.
Hope that helps
Paul[:)]
What I do: Using Installshield Admin Studio, I get the Upgrade code of the MSI I want to uninstall, add it to the upgrade code of the new package, and in direct editor, in the Upgrade table, I add an entry with the upgrade GUID in the Upgrade code field, set versions to affect, and set the attributes to be 4 - you also have to create a property called SecureCustomProperties and make the value equal to whatever you had in the ActionProperty field of the upgrade table - sounds complicated but its pretty easy I think.
If its not an MSI, then I use a VBScript to run a custom action only on install, and try to figure out how to silently uninstall the previous version of the app, sometimes its simple, sometimes its nigh on impossible.
Hope that helps
Paul[:)]
Posted by:
omookin
20 years ago
Posted by:
omookin
20 years ago
Posted by:
plangton
20 years ago
Hi omookin,
Do you still need any assistance with this? You have found the upgrade code in the old package, all you do is make this the upgrade code of the new package, and in direct editor, in the Upgrade table, add an entry with the upgrade GUID in the Upgrade code field, set versions to affect, and set the attributes to be 4 - you also have to create a property called SecureCustomProperties and make the value equal to whatever you had in the ActionProperty field of the upgrade table.
I use installshield, if you are using wise/orca some of the terminology may be different.
Rgds
Paul
Do you still need any assistance with this? You have found the upgrade code in the old package, all you do is make this the upgrade code of the new package, and in direct editor, in the Upgrade table, add an entry with the upgrade GUID in the Upgrade code field, set versions to affect, and set the attributes to be 4 - you also have to create a property called SecureCustomProperties and make the value equal to whatever you had in the ActionProperty field of the upgrade table.
I use installshield, if you are using wise/orca some of the terminology may be different.
Rgds
Paul
Posted by:
omookin
20 years ago
Hey Plangton,
1-how do i edit the direct editor?when i right click on a row it gives me all this find/search options
2-the upgrade code under my application configuration setup properties is different from the upgrade code in direct editor under upgrade code -s38...and could you break this down for me..."add an entry with the upgrade GUID in the Upgrade code field, set versions to affect, and set the attributes to be 4 - you also have to create a property called SecureCustomProperties and make the value equal to whatever you had in the ActionProperty field of the upgrade table"
cos i dont understand how to do any of this.
1-how do i edit the direct editor?when i right click on a row it gives me all this find/search options
2-the upgrade code under my application configuration setup properties is different from the upgrade code in direct editor under upgrade code -s38...and could you break this down for me..."add an entry with the upgrade GUID in the Upgrade code field, set versions to affect, and set the attributes to be 4 - you also have to create a property called SecureCustomProperties and make the value equal to whatever you had in the ActionProperty field of the upgrade table"
cos i dont understand how to do any of this.
Posted by:
plangton
20 years ago
Firstly, what are you using to create your packages? If you are using Installshield AdminStudio, then Direct Editor can be found in the left hand pane under Additional Tools. Clicking on that brings up another pane to the right of that with a list of tables. One of these tables is called the "upgrade" table. Clicking on that will bring up the upgrade codes for that application (which can also be found in Description - General Information - Product Properties).
So If you can find the upgrade table, you'll see you have various values "UpgradeCode", "VersionMin", "VersionMax", "Language", "Attributes", "Remove", "ActionProperty", "ISDisplayName"
So if you get your Upgrade code from the application you want to uninstall first (in Description - General Information - Product Properties) and paste that into the UpgradeCode field of the Upgrade table in direct editor of the application you want to DO the uninstall, then set the "Attributes" field to 4, make sure the "actionProperty" field has a value in it (should be autmoatically generated as ActionProperty). Then in the property table, create a property called "SecureCustomTransform" and give it the value of whatever was in your "ActionProperty" field in the upgrade table.
OK It sounds complicated but I think if you look at it and give it a go it will be simple enough.
If you aren't using Installshield Adminstudio this might not help you too much.
I hope this helps, let me know if you need more clarification or maybe I can email you some screenshots or something that might clear it up.
Rgds
Paul
So If you can find the upgrade table, you'll see you have various values "UpgradeCode", "VersionMin", "VersionMax", "Language", "Attributes", "Remove", "ActionProperty", "ISDisplayName"
So if you get your Upgrade code from the application you want to uninstall first (in Description - General Information - Product Properties) and paste that into the UpgradeCode field of the Upgrade table in direct editor of the application you want to DO the uninstall, then set the "Attributes" field to 4, make sure the "actionProperty" field has a value in it (should be autmoatically generated as ActionProperty). Then in the property table, create a property called "SecureCustomTransform" and give it the value of whatever was in your "ActionProperty" field in the upgrade table.
OK It sounds complicated but I think if you look at it and give it a go it will be simple enough.
If you aren't using Installshield Adminstudio this might not help you too much.
I hope this helps, let me know if you need more clarification or maybe I can email you some screenshots or something that might clear it up.
Rgds
Paul
Comments:
-
It doesn't work Paul - planeta 8 years ago
Posted by:
omookin
20 years ago
hey plangton,
thanks for the help, and yes I will take any screen shots,this can only get clearer!!
I have 3 questions[:D]:
1-The old msi was scripted by a tech who has left how do i get the upgrade code for his msi.....can i get it from the pkg in Altiris?if yes HOW????
2-I need to make the new msi create a new & empty folder....how do I do this??
3-Finally to test my uninstall ,is that another script[8|] or do i just manually uninstall from add/remove......if it is another script how do I do this??
Thanks man (in advance)[:D]
thanks for the help, and yes I will take any screen shots,this can only get clearer!!
I have 3 questions[:D]:
1-The old msi was scripted by a tech who has left how do i get the upgrade code for his msi.....can i get it from the pkg in Altiris?if yes HOW????
2-I need to make the new msi create a new & empty folder....how do I do this??
3-Finally to test my uninstall ,is that another script[8|] or do i just manually uninstall from add/remove......if it is another script how do I do this??
Thanks man (in advance)[:D]
Posted by:
fluff
20 years ago
I'd like to jump in this thread as I'm trying to do a similar thing (using InstallShield Adminstudio 5.5). I'm having difficulty finding the upgrade code of the app I want to automatically "uninstall" first. This app was snapshotted using ZENworks and I don't have the original source code - although it looks as though it used Wise installer. Is there someplace in the registry I can look that will give me the upgrade code.
Plangton, your instructions were quite descriptive...thank you. I'm very new to application packaging so please be gentle with me.
Cheers.
Plangton, your instructions were quite descriptive...thank you. I'm very new to application packaging so please be gentle with me.
Cheers.
Posted by:
plangton
20 years ago
Hi omookin,
1. Open the old msi (created by the tech who left) in Installshield AdminStudio 5 Developer. Int he left hand pane, there is a description, and under that is General Information. Click on that. The middle pane has a Product Properties item, click on that. The right pane should now show you the "Upgrade Code"
2. I'm surprised you don't know how to do this - again if you are using installshield, onb the left hand pane, under application data, is an item called "Files and Folders" - click on this, the middle pane now shows a folder structure. Simply right click where you want to create a folder and select "New Folder"
3. To test your uninstall, simply get a test workstation, install the old msi, and install the new msi. It should uninstall the old one. Do a full log of the installation of the new msi so you can review that to see if there were any problems.
I suggest doing much more playing around with packaging if you are really inexperienced, try things out yourself and see what happens. Things like "how to create a new folder" you can find out with experimentation I would think.
Hope this helps!
Rgds
Paul
1. Open the old msi (created by the tech who left) in Installshield AdminStudio 5 Developer. Int he left hand pane, there is a description, and under that is General Information. Click on that. The middle pane has a Product Properties item, click on that. The right pane should now show you the "Upgrade Code"
2. I'm surprised you don't know how to do this - again if you are using installshield, onb the left hand pane, under application data, is an item called "Files and Folders" - click on this, the middle pane now shows a folder structure. Simply right click where you want to create a folder and select "New Folder"
3. To test your uninstall, simply get a test workstation, install the old msi, and install the new msi. It should uninstall the old one. Do a full log of the installation of the new msi so you can review that to see if there were any problems.
I suggest doing much more playing around with packaging if you are really inexperienced, try things out yourself and see what happens. Things like "how to create a new folder" you can find out with experimentation I would think.
Hope this helps!
Rgds
Paul
Posted by:
plangton
20 years ago
Fluff,
Zenworks ... thats a different kettle of fish. Which version of Zen are we talking about? Zen doesn't natively use MSI's, but if its a zen object delivering an MSI then you can do it using the same process I have talked about. If its a native Zen object, then you'll have to find another way to uninstall it. I'd suggest posting a question on the cool solutions website, or reviewing the cool tools that Novell offers, I'm pretty sure one of them can do uninstalls of ZEN objects (assuming you are using Zen 3 or above) but its been a while.
Hope that helps.
Rgds
Paul
Zenworks ... thats a different kettle of fish. Which version of Zen are we talking about? Zen doesn't natively use MSI's, but if its a zen object delivering an MSI then you can do it using the same process I have talked about. If its a native Zen object, then you'll have to find another way to uninstall it. I'd suggest posting a question on the cool solutions website, or reviewing the cool tools that Novell offers, I'm pretty sure one of them can do uninstalls of ZEN objects (assuming you are using Zen 3 or above) but its been a while.
Hope that helps.
Rgds
Paul
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.