6
WHITE PAPER Introducing Merge Modules by Robert Dickau Principal Technical Training Writer, Flexera Software

InstallAnywhere White Paper Merge Modules

Embed Size (px)

DESCRIPTION

InstallAnywhere White Paper Merge Modules

Citation preview

Page 1: InstallAnywhere White Paper Merge Modules

WH

ITE

PA

PE

R

Introducing Merge Modulesby Robert DickauPrincipal Technical Training Writer, Flexera Software

Page 2: InstallAnywhere White Paper Merge Modules

Introducing Merge ModulesIntroduct ionMerge Modules support the easy creat ion of suite installers, subinstallers, and templates, delivering reusability from project to project, within development teams, across the enterprise, or from third-party providers. This white paper discusses the benefits of Merge Modules and the different Merge Module types. It also describes how to create Merge Modules using InstallAnywhere from Flexera Software.

Merge ModulesMerge Modules are essent ially installer sub-projects that can be created independent ly of one another and later merged together. Like an installer, a Merge Module is a reusable collect ion of installat ion funct ionality, complete with features, components, panels, act ions, and files. However, a Merge Module cannot be installed on its own; instead, developers use Merge Modules when they want to include the funct ionality of one installer within another installer.

Merge Modules provide many benefits and provide solut ions to complex installat ion requirements. For instance:

• Combine several Merge Modules from different products to create a “Suite Installer.”

• Independent development teams in different locat ions can create Merge Modules for different software components. A release engineer can combine those Merge Modules into a single product installer.

• Create self-contained units of installer funct ionality for reuse in future installer projects. For instance, if the same software component needs to be in several different installers, build it into a Merge Module and

make it available for all of the installer developers.

• Save common installer funct ionality, such as License Agreement panels and Custom User Input panels, into Merge Modules to simplify future installer project creat ion.

• Combine Merge Modules from third-party software packages to build complex software “Solut ions”, without having to figure out how to install each individual package.

• Use a Merge Module as the start ing point for a new installer project. These Merge Modules are referred to as Templates, and are covered in another sect ion.

• Any installer project can be built into a Merge Module. And any Merge Module can be used within any other installer project.

• Merge Modules are created as an option through the installer build process. Since a Merge Module contains all of the resources for a project, it is just like building an installer. They can be built automatically when the installer is built, or they can be explicit ly built from the Advanced Designer (check the Build Merge Module opt ion on the Build task, under the Distribut ion tab) or from the command line (use the +merge opt ion).

Merge Modules can be merged into an exist ing installer in one of two ways:

• In the Organizat ion > Modules task, click Import Merge Module to merge a merge module into the current installer. All of the merge module’s features, components, files, act ions, and panels (opt ionally) will be combined into the current project, enabling developers to further customize any sett ings.

• Merge Modules can also be installed as self-contained subinstaller units, without merging them into the current project. This is useful if developers do not know what will be in a Merge Module, or they will not be modifying any sett ings. Merge Modules added in this manner are run as silent subinstallers.

2 Flexera Software: InstallAnywhere White Paper Series

Learn More about InstallAnywhereIf you wish to learn more about the capabilit ies of InstallAnywhere and download a free evaluat ion, please visit the Flexera Software Web site at www.flexerasoftware.com/installanywhere.

Page 3: InstallAnywhere White Paper Merge Modules

Introducing Merge Modules

3Flexera Software: InstallAnywhere White Paper Series

Merge Modules can be integrated with a project in one of two ways:

• Use the Install Merge Module act ion and select Bundle Merge Module at Build Time, if the merge module is available when ready to build the installer. These Merge Modules will be included in the actual generated installer.

• Use the Install Merge Module act ion and select Locate Merge Module at Install Time to have the installer install a Merge Module that is available at install t ime, but external to the installer. The Merge Module can be either on the end user’s system or stored on a CD. If the locat ion is a folder that contains several Merge Modules, they will all be installed.

Other important facts about Merge Modules:

• Read-Only opt ion: Merge Modules can be locked, prevent ing them from being opened, used as templates, or being merged into an installer. Read-Only Merge Modules can only be installed as a self-contained installer unit.

• Optimize Merge Module Size by Plat form opt ion: Separate Merge Modules will be created for each platform. Each will only contain the resources needed for that specific platform. Do not use this opt ion if Merge Modules will be imported into another installer. Import ing a Merge Module requires a non-optimized merge module.

• Advert ised Variables: These are InstallAnywhere variables that will be necessary to set before a Merge Module can be installed using the Install Merge Module act ion. On the Build task, under the Distribut ion tab, click Edit Advert ised Variables to add variables, set default values, and add comments. Use Advert ised Variables to inform master installers of sett ings required for a Merge Modules configurat ion.

• InstallAnywhere Variables can be passed to the merge module when using the Install Merge Module act ion. Only selected variables will be passed to the merge module. By default, any Advert ised Variable set by the Merge Module (Advert ised Variables are set when the module is built) will be automatically passed in. Specific variables can also be passed in through the customizer of the Merge Module. For example, if the Magic Folder variable $IA_PROJECT_DIR$ was advert ised by the Merge Module, it will be passed in. If the variable $OTHER_VARIABLE$ was not advert ised, but was set in the customizer of the Install Merge Module act ion, it, too would be passed in.

Merge Module TypesDesign-t ime Merge ModulesUse Design-t ime Merge Modules to integrate a Merge Module into your main installer project. Once a Merge Module has been imported, it is fully integrated into your master project file; all files, act ions, and panels will appear as if they were a part of your main installer project. Merged

projects may be added and removed; however, any changes that are made once they’ve been imported will be lost if you remove a merged project from the suite.

For example, if you were to import a Merge Module into your master installer and then modify a few panels, when you save the project, those changes will be saved. If you remove the imported Merge Module from the suite, all of these changes will be lost, regardless of how many t imes your main installer project is saved.

Design-t ime Merge Modules display all panels you add to the project. They are the only Merge Module type that is not run silent ly.

Note: Only non-opt imized Merge Modules may be imported as Design-Time Merge Modules.

Build-t ime Merge ModulesA Build-t ime Merge Module is a Merge Module that is included in your installer at build t ime, and installed by the master installer. Unlike Install Time Merge Modules, Build-t ime Merge Modules are included with the master installer when you build the installer project. At install t ime, the Master Installer will install the Build-t ime Merge Module. To specify that the Merge Module be Build Time, select the option labeled Bundle Merge Module at Build Time from the Install Merge Module act ion customizer and pick a Merge Module with the Choose Merge Module button.

Build-t ime Merge Modules are packaged along with the master installer project in one .iap_xml file. Build Time Suite Installers can build a number of separate installers into a single executable. In this scenario, a single master installer runs a number of Merge Modules silent ly during the installat ion process. The master installer is responsible for the user interface and for passing propert ies files to the Merge Modules so that they run with the correct configurat ion information. The Merge Modules may also advert ise specific propert ies they require to operate properly.

Install-t ime Merge ModulesAn Install-t ime Merge Module is a Merge Module that is executed by the main installer at install t ime. Install-t ime Merge Modules are external to the main installer project. At install t ime, the master installer looks for the Merge Module at the specified path and launches whatever Merge Module it finds there. If the Install Time Merge Module path points to a directory then all Merge Modules contained in that directory will be installed. This enables Suite installers to be updated without having to update the master installer package.

To specify that the Merge Module will be an install t ime Merge Module, select the Locate Merge Module at Install Time opt ion from the Install Merge Module act ion customizer and then put a path in the text field next to it.

Page 4: InstallAnywhere White Paper Merge Modules

Introducing Merge Modules

Flexera Software: InstallAnywhere White Paper Series4

Dynamic Merge ModulesMerge Modules can be configured to be dynamic, meaning that the InstallAnywhere Advanced Designer will check for updates to the imported module at load and build t ime.

To use a dynamic Merge Module, you must first have built your sub component as a Merge Module, without the “Read Only” flag. Then, in the Organizat ion > Modules task, click Import Dynamic Merge Module to merge the component into the current installer. All of the merge module’s files, act ions, and panels (opt ionally) will be combined into current project. The act ions will appear as in an act ion group in Pre-Install and Post-install.

Dynamic Merge Modules are recommended if you have merge modules whose contents constant ly change. A parent project will automatically refresh dynamic merge modules when the parent project is loaded and built. This enables another group to cont inue parallel development on a Merge Module and its components, with those changes coming into the master installer automatically at build t ime.

Note: Merge modules cannot be authent icated. If you need authent icat ion for a Merge Module, add it to your main installer project. The Merge Module will then inherit this sett ing during the installat ion.

Creating Merge Modules You create merge modules much in the same way as regular installers are created. Add any panels, act ions, and rules just as you would for a typical installer project, then before building in Build > Distribut ion > Merge Module/Template Option select Build Merge Module/Template. Once Merge Modules are built, they have almost the same contents as a regular installer project, except they do not contain an IAClasses.zip file or a launcher.

Build OptionsWhen you have an InstallAnywhere project ready to be made into a merge module, go to the Build > Distribut ion > Merge Module/Template Option. Select Build Merge Module/Template. Build options are used to optimize the size of the merge module, define whether it is to be read only, and edit the advert ised variables for the merge module.

Merge Module SizeMerge modules will contain an approximation of their required size (based on the largest amount of space any given module could need), but you may override this size with your own calculat ion by sett ing an advert ised variable. The variable $DISK_SPACE_REQUIRED$ may be set to override the automatic approximation.

Creat ing Merge Modules as Read OnlyYou have the option of designating Merge Modules as read-only. This opt ion protects the integrity of the Merge Modules; the only way it can be added to an installer project is through the Install Merge Module act ion. This type of module cannot be integrated with the main installer

project using the Project > Modules task.

Advert ised VariablesAdvert ised Variables are a list of all variables in a Merge Module installer project. The main installer project can pass InstallAnywhere variables to a Merge Module at install t ime. The Merge Module will then use these variables as regular InstallAnywhere variables.

There may be cases “however” when the Merge Module cannot run without already having had some variables set. Those variables should be “advert ised” so the Merge Module can be configured easily. To do this, click Edit Advert ised Variables on the build sett ings tab and set up your variables.

Now, if you go to the main installer project, add a Merge Module, and look at the sett ings for variables that will be passed to the Merge Module, you will see that the names of advert ised variables have been added to your list and some may have been set to default values. Change the values as required, and these will be passed to the Merge Module at install t ime.

To add advert ised variables, go to the Build task and then select Build Sett ings. Click Edit Advert ised Variables. The Edit Advert ised Variables dialog box appears.

In the Edit Advert ised Variables dialog box, list all variables to be set in the installer project.

Page 5: InstallAnywhere White Paper Merge Modules

Introducing Merge Modules

5Flexera Software: InstallAnywhere White Paper Series

The variable name is the same as it was defined for the Merge Module. The value is the corresponding value in the main installer project.

For example, if you included the common Magic Folder $IA_PROJECT_DIR$ in your Merge Module, and you wanted that to correspond with the value of $IA_PROJECT_DIR$ in the main installer project, the variable name and value would both be $IA_PROJECT_DIR$.

Note: Variables in InstallAnywhere must be expressed with dollar signs ($) on either side.

To add your own variables to be passed to a merge module, go to the customizer for the Install Merge Module act ion in the designer, and click Edit Variables to add some variables.

SummaryThis white paper discussed the benefits of Merge Modules and the different Merge Module types. It also described how to create Merge Modules using InstallAnywhere from Flexera Software.

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

Learn More Best Pract ices for Building Quality Installat ions Join an InstallAnywhere training class – visit www.flexerasoftware.com/training for available classes.

Also, if you have a crit ical installat ion project but are short on developer bandwidth or expert ise, Flexera Software’s Professional Services team can help. Learn more at: www.flexerasoftware.com/services/consult ing/software-installat ions.htm.

Page 6: InstallAnywhere White Paper Merge Modules

WH

ITE

PA

PE

R

Flexera Software LLC1000 East Woodfield Road, Suite 400Schaumburg, 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 locat ions visit:www.flexerasoftware.com

Copyright © 2011 Flexera Software LLC. All other brand and product names ment ioned herein may be the trademarks and registered trademarks of their respect ive owners. IA_WP_Merge-Modules_Oct11