You are on page 1of 4

W H I T E PA P E R

Customizing Your Uninstaller
by Robert Dickau Principal Technical Training Writer, Flexera Software

Customizing Your Uninstaller
Introduction
As important as properly designing your installer is designing your uninstaller. Most simple projects will not require much uninstaller customization. However, if you are installing multiple projects, using merge modules, or installing server applications, you may wish to add additional functionalityto your uninstaller. This white paper describes how to build customized uninstallers to control the removal of products and features. If your installer supports console mode, you should add console equivalents to the graphical panels displayed during uninstallation. You can customize the appearance, location, and some of the behavior of the uninstaller using its customizer in the Install task.

Learn More about InstallAnywhere If you wish to learn more about the capabilities of InstallAnywhere and download a free evaluation, please visit the Flexera Software Web site at www.flexerasoftware.com/installanywhere

Uninstallation

In InstallAnywhere, you can customize the uninstaller in the same way you can customize the installer. In particular, you use the Pre-Uninstall and Post-Uninstall tasks to modify the panels and actions performed during uninstallation.

By default, the uninstaller executable is called Uninstall_ ProductName, and is located in an Uninstall_ProductName subdirectory of the installation location $USER_INSTALL_ DIR$.

Feature-Level Uninstallation

Each installer project has one uninstaller. All features are registered with the uninstaller through a local registry. If the Choose Feature panel is included in the uninstaller, the user will be offered the option to uninstall only certain features. There are two options for controlling the behavior of a feature-level uninstall. The default behavior, illustrated in the following figure, is that installed features appear checked at uninstall time, and that clearing a feature’s check box causes it to be uninstalled.

Starting with InstallAnywhere 2009, you can set the variable $SKIP_UNINSTALL$ to true to prevent the Uninstall step from being performed. The uninstaller is similar to the installer. It is a collection of panels, consoles, and actions. It keeps track of what the installer has done, and contains a record of every action run during install time. All Pre-Uninstall panels, actions, and consoles run first; then the uninstall functionality of actions in the Install task are called; and lastly the Post-Uninstall actions are run. In addition, the product information (product, feature, and component information) is removed from the InstallAnywhere registry. Note: You can disable integration with the InstallAnywhere registry by deselecting the Do not update the product registry check box in the Project > Info task.

In the settings for the Choose Features to Uninstall panel, you can specify to use the opposite behavior, that installed features are displayed un-selected, and selecting a feature causes it to be uninstalled.

2

Flexera Software: InstallAnywhere White Paper Series

Customizing Your Uninstaller

A feature-level uninstallation enables end users to choose specific features to uninstall. If an end user opts to uninstall one feature that has a shared component with a feature they were not planning to uninstall, the uninstaller recognizes this conflict and does not uninstall the shared component.

Similarly, you can optionally specify to integrate your product information with the RPM database on a Linux user’s system. You can specify the integration in the Project > Platforms > UNIX task. If you select to enable RPM registration, the Configure button enables you to specify the information to store in the RPM database.

Uninstaller Integration with the Target System

InstallAnywhere automatically creates an uninstaller for the project, which can be launched manually. The InstallAnywhere uninstaller removes all files and actions that occur during the Install task of the installation. Actions added in other phases of the installation cannot be removed using the uninstaller, and should be accounted for in the install phase. On Windows platforms, InstallAnywhere automatically creates an Add or Remove Programs entry.

If the user clicks the “Click here for support information” link in the Add or Remove Programs entry, the following Support Info panel is displayed.

Likewise, InstallAnywhere 2008 Value Pack 1 introduced support for integration with the SWVPD registry on AIX target systems, and RAIR support on System i (i5/OS) systems.

Summary

This white paper discussed how to build customized uninstallers to control the removal of products and features. It also highlighted how InstallAnywhere makes it easy for developers to design the right uninstaller. The details are populated based on the settings you specify in the Project > Description task.

Begin a Free Evaluation of InstallAnywhere

You can download a free trial version of InstallAnywhere from the Flexera Software Web site at: www.flexerasoftware.com/installanywhere/eval.

Learn More Best Practices for Building Quality Installations Join an InstallAnywhere training class – visit www.flexerasoftware.com/training for available classes. Also, if you have a critical installation project but are short on developer bandwidth or expertise, Flexera Software’s Professional Services team can help. Learn more at: www.flexerasoftware.com/services/consulting/ software-installations.htm
Flexera Software: InstallAnywhere White Paper Series
3

Flexera Software LLC 1000 East Woodfield Road, Suite 400 Schaumburg, IL 60173 USA

Schaumburg (Global Headquarters): +1 800-809-5659

United Kingdom (Europe, Middle East Headquarters): +44 870-871-1111 +44 870-873-6300

Japan (Asia, Pacific Headquarters): +81 3-4360-8291

For more office locations visit: www.flexerasoftware.com

Copyright © 2011 Flexera Software LLC. All other brand and product names mentioned herein may be the trademarks and registered trademarks of their respective owners. IA_WP_Uninstall_Oct11