How do I make my installer display "Uninstall/Change" button in Control Panel?
Answer
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. Sometimes you will want provide a full user interface for all the maintenance operations. This can be achieved by using the "Uninstall/Change" button instead of the three.
The recommended approach is to enable the "Override Windows Installer programs list entry" > "Use a single "Uninstall/Change" button instead of separate buttons for each operation" option.
Disable the classic behaviour
In order to disable the classic behavior from the Product Details Tab enable the following options:
- Disable Modify
- Disable Repair
- Disable Remove
- Do not show in list
Create a custom behaviour
In the Registry Page - Installer Project 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 the project in the “Product Details” Page.
In MyApplication registry key create the following registry values:
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] Version REG_SZ [ProductVersion] Language REG_DWORD [ProductLanguage]
Add your application's files to the project, build it and run it.
Conclusion
Once the package is installed, in Programs and Features the “Uninstall/Change” button will be associated with your application. The main advantage of this method is that all the maintenance operations will always use the User Interface created during the package authoring process.
The same results can be obtained by selecting "Override Windows Installer programs list entry" and using the Table Editor to modify the "Registry" table using the information described above.