Introducing Merge Modules


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Introducing Merge Modules

  1. 1. W H I T E PA P E R Introducing Merge Modules by Robert Dickau Principal Technical Training Writer, Flexera Software
  2. 2. Introducing Merge Modules Introduction make it available for all of the installer developers. Merge Modules support the easy creation of suite installers, • Save common installer functionality, such as License subinstallers, and templates, delivering reusability from Agreement panels and Custom User Input panels, into project to project, within development teams, across the Merge Modules to simplify future installer enterprise, or from third-party providers. This white paper project creation. discusses the benefits of Merge Modules and the different Merge Module types. It also describes how to create Merge • Combine Merge Modules from third-party software Modules using InstallAnywhere from Flexera Software. packages to build complex software “Solutions”, without having to figure out how to install each individual package. Learn More about InstallAnywhere • Use a Merge Module as the starting point for a new If you wish to learn more about the capabilities installer project. These Merge Modules are referred to of InstallAnywhere and download a free as Templates, and are covered in another section. evaluation, please visit the Flexera Software Web • Any installer project can be built into a Merge Module. site at And any Merge Module can be used within any other installer project. Merge Modules • Merge Modules are created as an option through the Merge Modules are essentially installer sub-projects that can installer build process. Since a Merge Module contains be created independently of one another and later merged all of the resources for a project, it is just like building together. Like an installer, a Merge Module is a reusable an installer. They can be built automatically when the collection of installation functionality, complete with installer is built, or they can be explicitly built from the features, components, panels, actions, and files. However, Advanced Designer (check the Build Merge Module a Merge Module cannot be installed on its own; instead, option on the Build task, under the Distribution tab) or developers use Merge Modules when they want to include from the command line (use the +merge option). the functionality of one installer within another installer. Merge Modules can be merged into an existing installer in Merge Modules provide many benefits and provide solutions one of two ways: to complex installation requirements. For instance: • In the Organization > Modules task, click Import • Combine several Merge Modules from different products Merge Module to merge a merge module into the to create a “Suite Installer.” current installer. All of the merge module’s features, components, files, actions, and panels (optionally) • Independent development teams in different locations will be combined into the current project, enabling can create Merge Modules for different software developers to further customize any settings. components. A release engineer can combine those Merge Modules into a single product installer. • Merge Modules can also be installed as self-contained subinstaller units, without merging them into the • Create self-contained units of installer functionality current project. This is useful if developers do not know for reuse in future installer projects. For instance, if what will be in a Merge Module, or they will not be the same software component needs to be in several modifying any settings. Merge Modules added in this different installers, build it into a Merge Module and manner are run as silent subinstallers.2 Flexera Software: InstallAnywhere White Paper Series
  3. 3. Introducing Merge ModulesMerge Modules can be integrated with a project in one of projects may be added and removed; however, anytwo ways: changes that are made once they’ve been imported will be lost if you remove a merged project from the suite. • Use the Install Merge Module action and select Bundle Merge Module at Build Time, if the merge module is For example, if you were to import a Merge Module into available when ready to build the installer. These your master installer and then modify a few panels, when Merge Modules will be included in the actual generated you save the project, those changes will be saved. If you installer. remove the imported Merge Module from the suite, all of • Use the Install Merge Module action and select Locate these changes will be lost, regardless of how many times Merge Module at Install Time to have the installer install your main installer project is saved. a Merge Module that is available at install time, but external to the installer. The Merge Module can be Design-time Merge Modules display all panels you add to either on the end user’s system or stored on a CD. If the project. They are the only Merge Module type that is not the location is a folder that contains several Merge run silently. Modules, they will all be installed. Note: Only non-optimized Merge Modules may be importedOther important facts about Merge Modules: as Design-Time Merge Modules. • Read-Only option: Merge Modules can be locked, preventing them from being opened, used as templates, Build-time Merge Modules or being merged into an installer. Read-Only Merge A Build-time Merge Module is a Merge Module that is Modules can only be installed as a self-contained included in your installer at build time, and installed by the installer unit. master installer. Unlike Install Time Merge Modules, Build- time Merge Modules are included with the master installer • Optimize Merge Module Size by Platform option: when you build the installer project. At install time, the Separate Merge Modules will be created for each Master Installer will install the Build-time Merge Module. platform. Each will only contain the resources needed To specify that the Merge Module be Build Time, select the for that specific platform. Do not use this option if option labeled Bundle Merge Module at Build Time from the Merge Modules will be imported into another installer. Install Merge Module action customizer and pick a Merge Importing a Merge Module requires a non-optimized Module with the Choose Merge Module button. merge module. • Advertised Variables: These are InstallAnywhere Build-time Merge Modules are packaged along with the variables that will be necessary to set before a Merge master installer project in one .iap_xml file. Build Time Module can be installed using the Install Merge Module Suite Installers can build a number of separate installers action. On the Build task, under the Distribution tab, into a single executable. In this scenario, a single master click Edit Advertised Variables to add variables, set installer runs a number of Merge Modules silently during default values, and add comments. Use Advertised the installation process. The master installer is responsible Variables to inform master installers of settings required for the user interface and for passing properties files for a Merge Modules configuration. to the Merge Modules so that they run with the correct • InstallAnywhere Variables can be passed to the merge configuration information. The Merge Modules may also module when using the Install Merge Module action. advertise specific properties they require to operate Only selected variables will be passed to the merge properly. module. By default, any Advertised Variable set by the Merge Module (Advertised Variables are set when the Install-time Merge Modules module is built) will be automatically passed in. Specific An Install-time Merge Module is a Merge Module that is variables can also be passed in through the customizer executed by the main installer at install time. Install-time of the Merge Module. For example, if the Magic Folder Merge Modules are external to the main installer project. At variable $IA_PROJECT_DIR$ was advertised by the install time, the master installer looks for the Merge Module Merge Module, it will be passed in. If the variable at the specified path and launches whatever Merge Module $OTHER_VARIABLE$ was not advertised, but was set in it finds there. If the Install Time Merge Module path points the customizer of the Install Merge Module action, it, too to a directory then all Merge Modules contained in that would be passed in. directory will be installed. This enables Suite installers to be updated without having to update the master installerMerge Module Types package.Design-time Merge ModulesUse Design-time Merge Modules to integrate a Merge To specify that the Merge Module will be an installModule into your main installer project. Once a Merge time Merge Module, select the Locate Merge Module atModule has been imported, it is fully integrated into your Install Time option from the Install Merge Module actionmaster project file; all files, actions, and panels will appear customizer and then put a path in the text field next to if they were a part of your main installer project. MergedFlexera Software: InstallAnywhere White Paper Series 3
  4. 4. Introducing Merge Modules Dynamic Merge Modules project using the Project > Modules task. Merge Modules can be configured to be dynamic, meaning that the InstallAnywhere Advanced Designer will check for Advertised Variables updates to the imported module at load and build time. Advertised Variables are a list of all variables in a Merge Module installer project. The main installer project can pass To use a dynamic Merge Module, you must first have built InstallAnywhere variables to a Merge Module at install time. your sub component as a Merge Module, without the “Read The Merge Module will then use these variables as regular Only” flag. Then, in the Organization > Modules task, click InstallAnywhere variables. Import Dynamic Merge Module to merge the component into the current installer. All of the merge module’s files, actions, and panels (optionally) will be combined into current project. The actions will appear as in an action group in Pre-Install and Post-install. Dynamic Merge Modules are recommended if you have merge modules whose contents constantly change. A parent project will automatically refresh dynamic merge modules when the parent project is loaded and built. This enables another group to continue parallel development on a Merge Module and its components, with those changes coming into the master installer automatically at build time. Note: Merge modules cannot be authenticated. If you need authentication for a Merge Module, add it to your main installer project. The Merge Module will then inherit this setting during the installation. Creating Merge Modules You create merge modules much in the same way as regular There may be cases “however” when the Merge Module installers are created. Add any panels, actions, and rules cannot run without already having had some variables just as you would for a typical installer project, then before set. Those variables should be “advertised” so the Merge building in Build > Distribution > Merge Module/Template Module can be configured easily. To do this, click Edit Option select Build Merge Module/Template. Once Merge Advertised Variables on the build settings tab and set up Modules are built, they have almost the same contents as your variables. a regular installer project, except they do not contain an file or a launcher. Build Options When you have an InstallAnywhere project ready to be made into a merge module, go to the Build > Distribution > 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 advertised variables for the merge module. Now, if you go to the main installer project, add a Merge Merge Module Size Module, and look at the settings for variables that will be Merge modules will contain an approximation of their passed to the Merge Module, you will see that the names of required size (based on the largest amount of space any advertised variables have been added to your list and some given module could need), but you may override this size may have been set to default values. Change the values as with your own calculation by setting an advertised variable. required, and these will be passed to the Merge Module at The variable $DISK_SPACE_REQUIRED$ may be set to install time. override the automatic approximation. To add advertised variables, go to the Build task and then Creating Merge Modules as Read Only select Build Settings. Click Edit Advertised Variables. The You have the option of designating Merge Modules as Edit Advertised Variables dialog box appears. read-only. This option protects the integrity of the Merge Modules; the only way it can be added to an installer In the Edit Advertised Variables dialog box, list all variables project is through the Install Merge Module action. This to be set in the installer project. type of module cannot be integrated with the main installer4 Flexera Software: InstallAnywhere White Paper Series
  5. 5. Introducing Merge ModulesThe variable name is the same as it was defined for theMerge Module. The value is the corresponding value in themain installer project.For example, if you included the common Magic Folder $IA_PROJECT_DIR$ in your Merge Module, and you wanted thatto correspond with the value of $IA_PROJECT_DIR$ in themain installer project, the variable name and value wouldboth be $IA_PROJECT_DIR$.Note: Variables in InstallAnywhere must be expressed withdollar 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 action inthe designer, and click Edit Variables to add some variables.SummaryThis white paper discussed the benefits of Merge Modulesand the different Merge Module types. It also describedhow to create Merge Modules using InstallAnywhere fromFlexera Software. Begin a Free Evaluation of InstallAnywhere You can download a free trial version of InstallAnywhere from the Flexera Software Web site at: Learn More Best Practices for Building Quality Installations Join an InstallAnywhere training class – visit 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: installations.htm.Flexera Software: InstallAnywhere White Paper Series 5
  6. 6. Flexera Software LLC Schaumburg United Kingdom (Europe, Japan (Asia, For more office locations visit:1000 East Woodfield Road, (Global Headquarters): Middle East Headquarters): Pacific Headquarters): www.flexerasoftware.comSuite 400 +1 800-809-5659 +44 870-871-1111 +81 3-4360-8291Schaumburg, IL 60173 USA +44 870-873-6300Copyright © 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_Merge-Modules_Oct11