December 25, 2012

Combining Uninstall / Change on same button in ARP Panell

Have you ever noticed that double-clicking any program / entry in Add / Remove Programs panel triggers Uninstallation and the application will be removed completely? The user does not have choice to select the options from the maintenance mode window. I have observed this behaviour with Installers created in Wise as well as InstallShield.
This article focus on the limitation associated with this behaviour in InstallShield Basic MSI project and provides a workaround for the same.

Further exploration unveiled that for some applications, the default action (bolded item) is "Uninstall/Change", where as a Basic MSI project created in InstallShield has 3 options as "Uninstall", "Change" and "Repair" and the default (in Bold) action is "Uninstall". My current case is to have "Uninstall/Change" option for our software instead of 3 Options.

For this InstallShield provided a solution with a disclaimer that this has not been tested at their end! But the solution worked like a charm for our application and hence would like to share it ..

By default, Windows Installer allows the creation of the “Repair”, “Change” and “Uninstall” buttons in order to maintain your application. The downside of this method is that the “Repair” and “Uninstall” actions are done in a basic user interface. There is no direct method available in InstallShield to achieve this. But tweaking some registry entries, you can make changes in display of ARP. You can make appropriate backup of registry and then try it.

For displaying Uninstall\Change on same button in ARP, disable all display options under General information->Add/Remove programs.

In the registry options, create the following registry key under the Current User/ Local Machine hive:

Software\Microsoft\Windows\CurrentVersion\Uninstall\MyApplication

where MyApplication is the Product Name you assigned for them.

In MyApplication registry key, create the following registry entries..

Name
Type
Data
DisplayIcon             
REG_SZ                
[SystemFolder]msiexec.exe
DisplayName             
REG_SZ                
[ProductName]
HelpLink                
REG_SZ                
[ARPHELPLINK]
InstallLocation         
REG_SZ                
[APPDIR]
Publisher               
REG_SZ                
[Manufacturer]
UninstallPath           
REG_SZ                
[SystemFolder]msiexec.exe /i [ProductCode]
UninstallString         
REG_SZ                
[SystemFolder]msiexec.exe /i [ProductCode]
URLUpdateInfo           
REG_SZ                
[ARPURLINFOABOUT]
DisplayVersion          
REG_SZ                
[ProductVersion]
Language                
REG_DWORD            
[ProductLanguage]
URLUpdateInfo
REG_SZ
[ARPURLUPDATEINFO]
URLInfoAbout
REG_SZ               
[ARPURLINFOABOUT]
Comments
REG_SZ
[ARPCOMMENTS]
 

Then add the ARPSYSTEMCOMPONENT to Property Manager and set the value as 1.

After successful installation, you can view the "Uninstall/Change" button on your application from Add / Remove Programs Panel.

[Note: This information has been verified with a Basic MSI project created in InstallShield 2012 Spring Edition.]

3 comments:

  1. hi nice post, can you explain whats happening behind the scene ..what is triggering that uninstall\change button to show up ?

    ReplyDelete
  2. i did some testing and came to know that the registry key entry called WindowsInstaller and ModifyPath, those two keys in the uninstall string HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID} are the one's that make the remove repair and modify to show up in the add remove program as 3 diff entries.

    ReplyDelete
  3. Thanks to Bhuvana!! Here I got an informative post.

    ReplyDelete