This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: How to always remove previous version of software
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 16, 2009
07:40 AM
How to always remove previous version of software
I have a InstallScript MSI project that I want to always remove any previous version of the software prior to installing the new bits, what is the easiest way to accomplish this task?
(8) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 16, 2009
08:02 AM
You might want to look into creating a "major upgrade".
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 16, 2009
08:33 AM
Robert,
I understand the major upgrade, but we make several daily fully automated internal builds every day and I would like to always uninstall to avoid issues that come with file versioning ect, and I don't wnat to make every version a Major build so is there another way to accomplish this task?
I understand the major upgrade, but we make several daily fully automated internal builds every day and I would like to always uninstall to avoid issues that come with file versioning ect, and I don't wnat to make every version a Major build so is there another way to accomplish this task?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 16, 2009
08:48 AM
Hi,
If I understand you correctly you build several daily builds for your full application. But I am in doubt that every of this build goes to the customer and therefore must be installed on each other. It looks like QA builds.
Consider using Virtual PC or VMWare with saved states. This will reduce overhead of developing special installation flow.
Regards
Fyodor.
If I understand you correctly you build several daily builds for your full application. But I am in doubt that every of this build goes to the customer and therefore must be installed on each other. It looks like QA builds.
Consider using Virtual PC or VMWare with saved states. This will reduce overhead of developing special installation flow.
Regards
Fyodor.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 16, 2009
09:15 AM
I do use VM Ware, but we actually make many builds daily because changes are made to the bits in our code and each of these changes are made into a build and then tested. In an effort to try and avoid some of the issues that come from upgrading, I want to always remove the previous version, so I'm looking for an easy way to do this. I have created the following function, but I'm not sure where in the script to put it so it does this before posting the message that an older version id present, do you whant to upgrade
function RemoveTriosGUID()
STRING szKey;
NUMBER nResult;
begin
RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
szKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{0680E88C-2498-41A2-B198-832E7ED5C35D}";
if (RegDBKeyExist (szKey) > 0) then
UninstallApplication ("{0680E88C-2498-41A2-B198-832E7ED5C35D}", "/uninst", LAAW_OPTION_WAIT) ;
DeleteDir (TARGETDIR, ALLCONTENTS);
DeleteDir (WINDISK + "\\Program Files\\InstallShield Installation Information\\{0680E88C-2498-41A2-B198-832E7ED5C35D}", ALLCONTENTS);
DeleteProgramFolder ("TA Instruments TRIOS");
endif;
end;
function RemoveTriosGUID()
STRING szKey;
NUMBER nResult;
begin
RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
szKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{0680E88C-2498-41A2-B198-832E7ED5C35D}";
if (RegDBKeyExist (szKey) > 0) then
UninstallApplication ("{0680E88C-2498-41A2-B198-832E7ED5C35D}", "/uninst", LAAW_OPTION_WAIT) ;
DeleteDir (TARGETDIR, ALLCONTENTS);
DeleteDir (WINDISK + "\\Program Files\\InstallShield Installation Information\\{0680E88C-2498-41A2-B198-832E7ED5C35D}", ALLCONTENTS);
DeleteProgramFolder ("TA Instruments TRIOS");
endif;
end;
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 16, 2009
09:40 AM
Hi Dean,
I still do not understand, sorry.
Presume you have the computer intended for your software. After installing it you have working copy of your program. Now QA discovers a bug, RND fixes it and you build new installation. From now you have two options: first is to uninstall old build (manually or automatically) meaning returning the computer to the state before first installation and then installing the new build. The second option is to revert VMWare state (snapshot) taken before installation of the first build.
The second scenario does not prevent from developing Major Upgrade but it dramatically reduce time for testing since reverting state takes 2 - 4 minutes only.
Regards
Fyodor.
I still do not understand, sorry.
Presume you have the computer intended for your software. After installing it you have working copy of your program. Now QA discovers a bug, RND fixes it and you build new installation. From now you have two options: first is to uninstall old build (manually or automatically) meaning returning the computer to the state before first installation and then installing the new build. The second option is to revert VMWare state (snapshot) taken before installation of the first build.
The second scenario does not prevent from developing Major Upgrade but it dramatically reduce time for testing since reverting state takes 2 - 4 minutes only.
Regards
Fyodor.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 16, 2009
10:10 AM
Your missing the point, I'm just looking for a way to always remove any previous version if it exists without having to always make the verion a major version
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 17, 2009
08:17 AM
I found a relative easy way to accomplish the task of forcing the installation to always delete any previous version of the software by doing the folllowing:
1) Under Media\Upgrades, on the Common Tab, set the following:
a) Small\Minor Upgrades, select the option Disable
b) Major Upgrades, select option to Completely Uninstall
2) Change the Product Code GUID
1) Under Media\Upgrades, on the Common Tab, set the following:
a) Small\Minor Upgrades, select the option Disable
b) Major Upgrades, select option to Completely Uninstall
2) Change the Product Code GUID
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 17, 2009
03:07 PM
Dean H wrote:
I found a relative easy way to accomplish the task of forcing the installation to always delete any previous version of the software by doing the folllowing:
1) Under Media\Upgrades, on the Common Tab, set the following:
a) Small\Minor Upgrades, select the option Disable
b) Major Upgrades, select option to Completely Uninstall
2) Change the Product Code GUID
Or you could find out PRODUCT CODE for your application that you intend to uninstall/install then in Onbegin sequence use LaunchAppAndWait to run your setup.exe with /u
This way everytime you installation is run , your code will look for existence of PRODUCTCODE and if found it will always be uninstalled first irrrespective of what version your client has installed **You will have to keep the same productcode everytime you make changes to your installation, and also will have to use RegDBFindKey (or something similar) to look for your PRODUCTCODE under unstallation in registry.
HTH
![](/skins/images/A5EADE085F77DE82FB3B14D6B307AE6A/responsive_peak/images/icon_anonymous_message.png)