mimarsinan installaware enterprise
TRANSCRIPT
MimarSinan InstallAWARE 3 Professional/Enterprise Printed Documentation
Copyright © 1996-2004 MimarSinan International. All rights reserved.
MimarSinan InstallAWARE 3
i
Table Of Contents
InstallAWARE Help Library .............................................................................................. 1
InstallAWARE is Aware................................................................................................. 1
What's New ..................................................................................................................... 3
Getting Started ................................................................................................................ 5
Working in the IDE..................................................................................................... 5
Developing Setups .................................................................................................... 14
Getting Results.............................................................................................................. 26
Interface Elements .................................................................................................... 26
Setup Logic ............................................................................................................... 32
Performance .............................................................................................................. 36
Reference ...................................................................................................................... 38
Project Options.......................................................................................................... 38
Project Wizard .......................................................................................................... 42
Scripting.................................................................................................................... 49
Dialog Editor............................................................................................................. 98
Support Files ........................................................................................................... 104
Plug-In Development .................................................................................................. 112
Automation ................................................................................................................. 119
Win32 DLL............................................................................................................. 122
Index ............................................................................................................................... 135
1
InstallAWARE Help Library
Welcome to MimarSinan InstallAware. InstallAware is a next-generation tool for creating scriptable, web enabled, Windows Installer based setup programs.
Use this Help system to find conceptual, procedural, and reference information about InstallAware.
The following Web pages offer additional assistance, information, and resources:
MimarSinan Home Page MimarSinan Product Support MimarSinan InstallAware Home Page
Note:
Not all features described in this Help system are available in all editions of the product. If your Internet access is limited by network security, or if your computer is protected by a personal firewall, the Web-based links in this Help system might not function properly.
InstallAWARE is Aware InstallAware is Web Aware
Every member of the MimarSinan InstallAware product family is aware of online distribution. Setups can be built for and executed directly from the web. Of course, support for traditional distribution methods such as CD/DVD media is also provided.
InstallAware's web aware installation technology offers the following compelling distribution advantages:
Only required/chosen features will be downloaded during setup, conserving bandwidth
Broken/interrupted downloads will automatically resume when setup is restarted
Printed Documentation
2
Proxy servers are fully supported - users will be prompted automatically if necessary
InstallAware is Scripting Aware
MimarSinan InstallAware embraces and extends Windows Installer like no other product available today. Using standards compliant Windows Installer technology comes at a cost: loss of scripting, and conditional setup flow. If you have attempted Windows Installer before, you have most likely found yourself concentrating on not what to install, but how to install.
InstallAware's unique technology remains within the bounds of Windows Installer, and brings genuine scripting to this platform:
Your entire setup is a visual script with conditional execution and branching Each installation action in your script is automatically converted into Windows
Installer tables When your script is running, only Windows Installer actually modifies the
target system No matter how complex your installation script is...it always remains fully ICE
compliant, at no extra effort on your part!
InstallAware is Windows Installer Aware
All members of the MimarSinan InstallAware family of products use the latest in installation technology: Windows Installer. Coming direct from Microsoft, Windows Installer has become the standard in software installation and provides a streamlined, robust installation experience. Windows Installer is integrated into each recent version of Windows, and can be added to earlier versions of Windows as well.
InstallAware, at no extra effort on your part, gives you the following:
Absolutely no knowledge of Windows Installer or its complex database is required
Your entire setup is executed by Windows Installer, providing for bullet-proof installations
Using Windows Installer means your application qualifies for testing to receive the Designed for Windows certification
Windows Installer databases created by InstallAware are all ICE compliant, meaning they will pass installer testing during the certification process
InstallAWARE Help Library
3
What's New What's New
InstallAware 3.0 contains the following new features for developing Windows Installer setups.
IDE
The IDE is now implemented in Win32 and the .NET Framework is no longer required.
The new Visual view allows you to visually modify your setups without having to author code. Changes made in the Visual view automatically update your installation script. Changes made to your installation script are automatically reflected back in the Visual view.
IDE Layouts are saved seperately for the Visual and Code views. Changing your view automatically changes your active layout as well.
The Refactor Paths option allows you to update hard-coded paths in your setup scripts, a helpful option when your setup files change location.
Tools and Libraries
The Code Signing Tool is available for signing executables and libraries outside of the IDE build process.
The command line build tool is now implemented in Win32 and no longer requires the .NET Framework.
The automation library is now implemented in Win32 and no longer requires the the .NET Framework.
Plug-Ins
The new Call DLL Function plug-in allows you to call any function inside an arbitrary DLL, without requiring a pre-defined set of function parameters.
Plug-Ins may now display custom text in the code editor. Plug-In templates have been updated to show samples of displaying custom
text in the code editor.
Setup Engine
Setups containing Web Media Blocks now run up to 50% faster.
Printed Documentation
4
If Web Media Blocks are found inside the same folder as the main setup executable, the installation engine now attempts to use the found blocks directly from that location, instead of downloading them from the Web. If this attempt fails, the installation engine will fall back to downloading from the web.
Setup User Interface
Two new setup themes are available. You may now customize the icon which is used in the main setup executable.
The same icon also updates the Add-Remove Programs applet and is visible during installer self extraction.
A new Flash control is available for use in installation dialogs. An ideal usage scenario would be to provide interactive Flash billboards during installation progress.
A Select Destination Directory window may now be spawned from button controls. This mechanism provides an alternative to displaying a tree view in the destination folder step of install wizards.
Multiple state changes for dialogs are now allowed in the installation wizard.
New Scripting Commands
The Create File Type command allows you to define a file type and the extensions belonging to that type, to become associated with your application.
The Get Environment command retrieves the value of an environment variable.
The Get File Version command retrieves the version string of a file suitable for display and debugging.
The Get Temporary File command obtains a temporary file name. The Install Assembly command installs a .NET assembly, either into the
Global Assembly Cache, or a custom folder. The Parse String command enables you to parse a string based on a pattern. The Set Environment command sets the value of an environment variable. The Register Library command registers or unregisters a library
(DLL/OCX/EXE/TLB).
Upgrading from InstallAware 2.x
Upgrading setups created in InstallAware 2.x to InstallAware 3.0 is automatic. Simply open your project in the new IDE as before and continue working normally.
InstallAWARE Help Library
5
However, the considerations below apply while working with 2.x projects:
If you plan on using 3.0 projects back in 2.x, you should not use any new plug-ins and/or installation commands, as these will not be available in the older versions and your scripts will fail to load.
Do not attempt to auto-upgrade setups created in version 2.x using a setup created in version 3.0. Simply change the Product Code used in your setups to assure that 3.0 setups will not attempt to auto-upgrade 2.x setups.
Getting Started Working in the IDE
Loading and Saving Projects
Starting a New Project
When you open InstallAware for the first time, the New Project dialog will be automatically displayed. At any other time when you wish to start a new project:
Click the New icon on the toolbar. Choose File New Other.
New Project Dialog
The New Project dialog helps you choose from various types of setup projects when you are starting a new project.
Project Wizard
The Project Wizard will guide you step by step through the creation of a new setup project. When you are finished with the wizard, you will have created a fully functional installation script. You may then further customize that script in the script editor.
Because it is entirely visual, and generates setups that will work out-of-the-box, the Project Wizard is generally recommended for starting new installations.
Project Templates
Printed Documentation
6
Project templates are essentially pre-built setups that you can customize as necessary. They will need to be modified in the script editor before they can be used to deploy your products.
Plug-Ins
Plug-ins are extensions to the IDE and the setups you generate. Several plug-in projects are available which can be used in your favorite programming environment as starting points for creating InstallAware plug-ins.
Opening a Project
There are several ways to open an existing project with InstallAware.
Opening from Windows Explorer
Double-click the project file (with .MPR extension) to open it with InstallAware.
Opening from the IDE
Click the Open icon on the toolbar, or choose File Open Project, or press CTRL+O and browse to the project that you wish to open.
Choose File Reopen to quickly open a previously saved project.
Saving and Moving a Project
You will want to save the project you are working on, or perhaps to move it to a different location. InstallAware projects are comprised of the project file (.MPR extension), script file (.MIA extension), dialog resources, and other support items. The best way to save and move projects is through the IDE itself.
Saving a Project
To save a project that is open in the IDE:
Click the Save icon on the toolbar. Choose File Save Project, or press CTRL+S.
Moving a Project
InstallAWARE Help Library
7
To move a project, first open it in the IDE. Then:
Choose File Save Project As. All elements of your project will be saved and moved to a new folder.
Note:
If you had previously changed your default script file location (.MIA extension), your script file will not be moved automatically.
Importing from Express
InstallAware Express projects have a .MPRX extension and cannot be directly opened in InstallAware. You may however import an existing project you created in the Express edition of InstallAware. To import an Express project, follow these steps:
Open the project in Express. Build the project. Building an Express project generates an InstallAware
project automatically. Navigate to the build folder, locate the generated Enterprise file (.MPR
extension), and open it.
Using the Project Manager
Displaying the Project Manager
The Project Manager window gives you a graphical outlook on the script, dialogs, and files you have included in your project. To display this window:
Choose View Project Manager. Press CTRL+ALT+P.
Modifying the Script File
Each InstallAware project references a script file, with a .MIA extension. You may change the script file, or where it is located, without altering the remainder of your
Printed Documentation
8
project. By default, the script file carries the same name as the project file, and is located in the same project folder.
Warning:
After you modify the default script file, if you later decide to move the project, the script file will not be automatically moved to the new project location.
To Change the Script File Location
Display the Project Manager. Select the Script node in the tree view. Right-click on the script file. Choose Save Script File As, and browse to the new location where you wish
to save the script file.
To Modify the Referenced Script File
Display the Project Manager. Select the Script node in the tree view. Right-click on the script file. Choose Change Script File, and browse to the new script file you would like to
use.
Modifying Project Dialogs
Each project contains references to the dialogs that are a part of its user interface. You may edit, add, and remove existing dialogs.
To Add New Dialogs
Display the Project Manager. Select the Dialogs node in the tree view. Right-click and choose Add Dialogs to Project, or press INSERT. If you wish to add an entire themed collection of dialogs, check Add a Pre-
Built, Themed Collection of Dialogs, and select the theme from the drop down menu. If you wish to add a single dialog instead, check Choose Dialogs to Add by File Name, and browse to the dialog file.
All selected dialogs will be copied to the project folder, and will be added to your project as references.
Warning:
InstallAWARE Help Library
9
If you add a dialog that already exists in your project folder, the new dialog will overwrite the old one.
To Edit Dialogs
Display the Project Manager. Select the Dialogs node in the tree view. Double-click the dialog you wish to edit, or select it and press ENTER. The
dialog will open in the Dialog Editor. Modify your dialog as necessary and remember to save your changes.
To Remove Dialogs
Display the Project Manager. Select the Dialogs node in the tree view Highlight each dialog you would like to remove. You may select multiple
dialogs. Right-click your selection and choose Remove Dialogs from Project, or press
DELETE.
Modifying Support Files
Each installation project contains support files that are used as resources during your setup. For instance, your license agreement file is a support file. Support files are compressed into the main setup executable during builds and are available while the installation is running at the folder referenced by the SUPPORTDIR variable.
To Add Support Files
Adding files such as setup splash screens, license agreements, readme files, is necessary for most setups:
Display the Project Manager. Select the Support Files node in the tree view. Right-click and choose Add Files to Project, or press INSERT. Browse to the
files you wish to add. You may select multiple files.
Remember that you may include any file as a support file, and access it while the installation is running using the SUPPORTDIR variable.
To Remove Support Files
Printed Documentation
10
You may wish to eliminate support files that you no longer use:
Display the Project Manager. Select the Support Files node in the tree view. Highlight each support file you would like to remove. You may select multiple
files. Right-click your selection and choose Remove Files from Project, or press
DELETE.
Modifying Merge Modules
Your installation projects may contain one or more Windows Installer Merge Modules. Merge Modules are available as .MSM files and are fully self-contained pieces of setup logic and data, used in extending Windows Installer installations. The most typical usage of a Merge Module is to add support for installing a particular application runtime to your setup solution.
Once you add a Merge Module to your setup, the runtime it contains will be properly installed, with no further steps or configuration required. You may add as many Merge Modules as required to your project simultaneously.
To Add Merge Modules
Follow the steps below to add a new Merge Module to your setup:
Display the Project Manager. Select the Merge Modules node in the tree view. Right-click and choose Add Merge Modules to Project, or press INSERT.
Browse to the Merge Modules you wish to add. You may select multiple Merge Modules.
To Remove Merge Modules
You may wish to eliminate Merge Modules that you no longer need:
Display the Project Manager. Select the Merge Modules node in the tree view. Highlight each Merge Module you would like to remove. You may select
multiple files. Right-click your selection and choose Remove Merge Modules from Project,
or press DELETE.
InstallAWARE Help Library
11
Editing Scripts
Using the Script Editor
The script editor is where you create the heart of your installation. The setup script drives the entire installation, determines your setup logic, and modifies the target system. You will frequently work in the script editor while authoring your installation. The script editor is entirely visual, and has a pseudo-code appearance.
Writing your Setup Script
When working in the script editor, you will add commands that perform setup actions, edit existing commands and fine tune their behavior, and of course remove commands which you wish to eliminate.
Adding Commands
The list of available commands is displayed to the left of the installation script. To add a command:
Double-click the command you wish to add, or select it and press ENTER. The command will be added on top of the script item selected in the installation script.
Drag and drop the command from the command list to the installation script. The command will be added on top of the script item you release the mouse button on.
Editing Commands
Using the mouse or the arrow keys, navigate in your script to the command you wish to edit.
Double-click the command, or press ENTER. If the command has options you can edit, a dialog box will appear allowing
you to make your changes.
Removing Commands
Using the mouse or the keyboard, highlight the lines you wish to remove. Press DELETE.
Script Editing Features
Printed Documentation
12
The script editor has several convenient features you may use while working with your setup code.
Clipboard Functions
Using the mouse or keyboard, highlight the code to cut or copy. Or, select the code you wish to paste above.
Right-click the code, and choose Cut, Copy, or Paste. You may also use the shortcuts CTRL+X, CTRL+C, CTRL+V.
Moving Code Up or Down
Using the mouse or keyboard, highlight the code to move. Right-click the code, and choose Move Up or Move Down.
Commenting Code
Using the mouse or keyboard, highlight the code to comment out (or comment in, if it is already commented out).
Right-click the code, and choose Comment Out/In.
Searching for Text
Choose Edit Find. Type the text to search for. Click the Find Next button. The next script line containing your text will be
highlighted.
Note:
The search tool searches across only the visible pseudo-code portion of your script.
Customizing Script Appearance
You may change the way your script looks in the script editor. Choose Tools Options to display the IDE Options window, and then:
Select the Font tab to change the script font and size. Select the Color tab to change the way script commands are syntax
highlighted.
InstallAWARE Help Library
13
IDE Tools
The InstallAware IDE is complemented by tools and plug-ins which work hand-in-hand with it. Note that the installation of these tools is optional, and they will not work unless they have been installed. If you realize you failed to install a necessary tool, simply re-run the InstallAware setup and Modify your existing installation to add the required tools.
The Database Validator
To start the Database Validator, choose Tools Validate Database. Use the validator to make sure your setup script compiles into a valid MSI database, capable of receiving the Designed for Windows logo certification.
The Dialog Editor
To start the Dialog Editor, choose Tools Start Dialog Editor, or press F12. Use the editor to customize dialogs that are part of your user interface.
The Translator
To start the Translator, choose Tools Start Translator. Use the translator to localize your setups into different languages.
Code Signing
To start Code Signing, choose Tools Code Sign. Use the code sign tool to manually signcode your executables and libraries using authenticode technology.
Plug-Ins
Plug-ins enhance both the IDE and the setups you create. To see a list of available plug-ins, choose Tools Plug-Ins, or press F11. You may add new plug-ins by installing them, or uninstall existing ones to remove them. Each available plug-in will be shown on the Commands list and you may use it like any other command while editing your setup script.
IDE Layouts
The InstallAware IDE is configurable with docking tool windows. IDE layouts provide a quick way to save your docking configuration. Moreover, they let you quickly change configuration, which makes them very practical to use. For instance, you may use to a particular layout while coding your setup, and switch to another while debugging.
Choosing a Layout
Printed Documentation
14
The list of available layouts is shown on the toolbar. Simply click the drop-down button and select the layout you wish to activate.
Saving a Layout
If you have customized your IDE and wish to save your changes, you may store them in a new (or existing) IDE layout:
Click the Save Layout icon on the toolbar. Choose View Layouts Save Current Layout.
Deleting a Layout
To remove layouts you do not use anymore:
Choose View Layouts Delete.
Developing Setups
Authoring
Authoring Process
The process of developing a setup can be summarized in the steps below.
Determine Requirements Design Setup Logic Define User Interface Create Baseline Project Code Installation Logic Install Application Data Build and Test Deploy
Determine Requirements
Before starting work on your installation, lay some conceptual groundwork. This will save you time later, as missed requirements can result in hard to reproduce bugs. Requirements that must be determined include:
InstallAWARE Help Library
15
Minimum computer hardware requirements (display resolution, color depth, physical memory)
Minimum computer software requirements (operating system version, Internet Explorer version, any required third party software)
Redistributable DLLs (programming language support libraries) Component updates (programming language runtimes) Database platforms (data access components)
InstallAware provides easy ways to check for hardware/software requirements, and install required component updates where necessary. Leverage the power of MimarSinan InstallAware, checking for and enforcing your system requirements.
Design Setup Logic
Your setup logic is essentially the "what happens when" of your installation program. Careful planning and foresight will ensure your setups install right the first time.
Make a list of possible installation scenarios, including:
Fresh installs Upgrades Cross-grades
Define the user experience with your installation - what information will you be asking the user for a successful setup? Some examples:
Licensing checks Application features Any custom information
Focus on technical aspects of your setup:
Differences between 9X and NT based installs Application feature interdependencies Shared third party components
Define User Interface
Printed Documentation
16
Based on the target audience of your product, carefully pick a user interface. InstallAware ships with ten pre-built setup themes that range from conservative to fashionable, providing you with a good starting point in designing your user interface (to sample the themes, choose Tools Dialog Sampler in the IDE, and pick the theme to try).
InstallAware's Dialog Editor helps you further customize your setup theme and add/remove elements to/from your dialogs. If you need to obtain information from end-users which are specific to your particular product, simply add additional controls to your existing dialogs, or even create new dialogs, extracting the required information. InstallAware makes it very easy to add custom elements to setup dialogs, and access that information from the setup script.
Create Baseline Project
Once you have laid the conceptual groundwork for your installation, you can actually begin coding your setup. While there are many ways to start coding, including starting from a completely blank project, the quickest route would be to use the Project Wizard. The wizard will visually guide you through each major step of creating a setup program and delivers a fully working project script for you. You may then immediately deploy this setup, or customize the script further as suits your needs.
Code Installation Logic
Thanks to the unique scripting technology that MimarSinan InstallAware makes available on the Windows Installer platform, you are free to use as many conditional statements and branched executions in your setup as you want. Utilize the power of genuine scripting for Windows Installer, and enjoy complete freedom in your installation. Check for different circumstances and act upon them as necessary. Below are some ideas to get you started:
Import data from previous application versions Define and let the user choose from application features Act differently on varying target system configurations Import/export data from/to the registry and configuration files Check local file versions Read/write from/to text files
InstallAWARE Help Library
17
Install Application Data
When you have successfully interviewed the user and got the necessary responses from your setup dialogs, you are ready to begin modifying the target system. InstallAware's unique scripting engine makes it possible to execute each action that changes target system state through Windows Installer. No custom actions or any third party technologies are involved. Each of your installation commands will execute directly through Windows Installer.
A short selection of available installation commands, all executing natively through Windows Installer:
Install files Copy/move local files Edit registry Edit INI files Create shortcuts Install and/or remove other Windows Installer setups
Build and Test
After you have completed coding your setup, it is time to build your setup. Building a setup converts your installation script, along with all requisite files, to a fully working installation that you can distribute to your end users. Of course, it is necessary to test your installation under all anticipated execution environments before moving ahead to the deployment phase.
Deploy
After you have coded, built, and tested your setup to your satisfaction - it is time for deployment. In a nutshell, deploying your setup is making it available to your end-users. This can mean a lot of different things - publishing your product on a web page and pressing it on a CD to name the two most common options.
Building
Compiling
Printed Documentation
18
To compile your project:
Choose Project Compile, or press CTRL+F9.
Compiling a project does the following:
Check your script for correct syntax and valid variable references. Update your Windows Installer database file.
Compiling a project is automatically performed when you do a build or a batch build.
While to deploy a project you need to rebuild it, compiling can help save you time in between multiple debugging runs. You do not need to rebuild your project if you have only changed your setup script (and not any of the installed files) since your last build.
Building
To build your project:
Choose Project Build, or press sHIFT+F9.
Building a project does the following:
Compile your project. Pull all referenced files and folders. Generate your selected deployment layout.
You will need to rebuild your project before deploying it. After a build, your setup is ready for testing and deployment. You also need to rebuild your project while debugging if any of the files referenced in your installation have changed.
Building can take a lot of time, especially if you are using a compressed or web deployment type. Consider setting the uncompressed deployment type to accelerate your builds while developing your setup. In some instances a compile may also be used in place of a build.
Batch Building
To batch build your project:
InstallAWARE Help Library
19
Choose Project Batch Build, or click the Build Multiple Releases icon on the toolbar.
A batch build is essentially the same as a regular build. However, the product code does not change in between batch builds (even if it is enabled in your settings), and you may build more than one deployment type at a single pass. Batch builds are especially useful when you have finished development, and wish to update your installation with the latest application files and/or are building for multiple deployment types.
Build Settings
Build settings control how your setups are built. These settings allow for changing the deployment type (uncompressed, compressed, web), among other things. To access your build settings, choose Project Options or press SHIFT+CTRL+F11.
Authenticode Node
This page lets you digitally sign your packages with authenticode. Provide the paths to your certificate and key files to enable code signing. The default value for the time stamp URL is http://timestamp.verisign.com/scripts/timstamp.dll.
Build Node
This page lets you configure your deployment type. The various kinds of deployment types, along with their uses, are explained below. Pick the one that is most suitable for your target audience. If you will be debugging your setup inside the IDE, also ensure the Debug Build checkbox on this page is checked.
Uncompressed Directory Layout
Your setup is contained in multiple files spanning several layers of multiple nested folders. Each file is uncompressed and immediately available, minimizing installation time, since files will not be uncompressed from an archive or downloaded before installation.
This type of deployment is ideal for CD/DVD media where disk space is not a concern and multiple files/folders can be stored. It also works well on network drives.
Compressed Single Self-Installing EXE
Your setup is contained inside a single self extracting file. This file, when run, will first extract its contents to a temporary folder, and then start the main setup program. In essence, when executed, the compressed layout converts into the uncompressed layout.
Printed Documentation
20
This type of deployment is suitable for Internet distribution, since the entire setup is contained inside a single file.
Compressed Web-Based EXE
Your setup is comprised of a self extracting file, which similarly to the compressed layout, extracts its contents and starts the main setup; as well as web media blocks, which are defined in your setup script and are downloaded as required from the web.
This type of deployment is ideal for Internet distribution. Setup will download only the web media blocks which are required on the target system. This saves download times and bandwidth since users will not waste either downloading portions of your application and/or its runtimes which they do not need.
Compression Node
This page lets you configure the strength of the compression employed while creating your setups. By default, the optimal settings for your system will be selected. To customize your compression parameters:
Click Create New to create a new compression profile, if you have not previously done so.
The profile editor opens with your new compression profile. The compression profile contains several settings that may be configured. Edit your compression profile.
Click OK in the profile editor to save your changes, and highlight the new profile in the compression node to activate your new settings.
The table below briefly describes relevant settings in the profile editor.
Page Setting Explanation
General Settings
Priority Priority of compression task. Set to Idle for background compression. Set to Normal for full throttle.
General Settings
Store Folder Information
Only Relative allowed.
7-Zip Type
Solid Compression Set to On for best performance. Off will decrease compression.
7-Zip Type
Header Compression Set to On for best performance. Off will slightly decrease compression.
InstallAWARE Help Library
21
7-Zip Type
Compression Algorithm
Only LZMA allowed.
7-Zip Type
Dictionary Size for LZMA Algorithm
Recommended range is 22-25. Values above 22 require at least 256 MB RAM on development system, and 32 MB RAM on target systems. Values lower than 22 will significantly hurt compression.
7-Zip Type
Match Finder Method for LZMA Algorithm
Set to Binary Tree with 2-3-4 bytes hashing for best performance. Other values may decrease compression.
7-Zip Type
Fast Byes for LZMA Algorithm
Set to 255 for best performance. Lower values will decrease compression.
7-Zip Type
Converter Algorithm Set to BCJ2 for best performance. Other values will degrade compression.
7-Zip Type
BCJ2 Converter Algorithm 1
Only LZMA or None allowed. Values other than LZMA will degrade compression.
7-Zip Type
BCJ2 Converter Algorithm 2
Only LZMA or None allowed. Values other than LZMA will degrade compression.
7-Zip Type
Multiprocessor or Hyperthreading
Set to ON if you have a hyperthreading system, or multiple processors.
Output Node
This page allows you to customize additional build settings:
If you wish to customize the output folder, check Custom Folder and provide your preferred output folder. By default, builds will exist under your project folder.
If you wish to customize the name of your main setup executable, enter it in the Output filename field. Leave this field empty to use the default name, which is the same as your project file name.
If you wish to automatically update the revision code every time you build (excluding batch builds), check Change revision code automatically upon rebuild. This setting must be unchecked when debugging your setup. Checking it will enable seamless, automatic upgrades of your product.
Testing
Printed Documentation
22
Running Inside the IDE
While the most straightforward way to test your setups will be to execute them from the build output location, you may find it convenient, and at certain times necessary, to run the setup in the IDE, so as to be able to debug your setups. You may execute any setup inside the IDE, however the following special considerations do apply:
In the Project Options dialog, on the Build node, make sure the Debug Build checkbox is checked. You may choose any deployment type as long as this checkbox is checked.
In the Project Options dialog, on the Output node, make sure the Change product code automatically upon rebuild checkbox is unchecked.
Build your project at least once before beginning debugging. Remember to rebuild whenever you change your installation files and/or build mode. Rebuilding is not necessary when you change the installation script.
The SUPPORTDIR variable, and other variables which refer to the location of the running setup program, will refer to your project folder.
The EXEFILE variable, and other variables which refer to the running setup program, will refer to the InstallAware IDE executable file itself.
Debugging
The InstallAware IDE includes integrated debugging capabilities. As long as you have prepared to run your setup inside the IDE, you may make free use of any of the powerful debugging tools described below.
Running in the Debugger
Set breakpoints as necessary. Breakpoints alert you when a certain line in your script has been reached and pause program execution. Highlight each line you wish to set a breakpoint on, and choose Run Set Breakpoint, or press F5.
To execute your setup and stop only at your breakpoints, choose Run Run, or press F9.
To execute your setup line by line, stopping at each line, choose Run Step, or press F8.
To terminate the execution of your current program, choose Run Reset, or press CTRL+F2. Be sure to close any currently active dialogs shown by your setup before terminating.
Using Variable Watches
InstallAWARE Help Library
23
Variable watches help you monitor the state of each of the variables used in your setup. You can therefore find out if your expected setup logic is working correctly. Moreover, you can change the values of variables while setup is running.
Displaying the Watches Window
You must first open the Watches Window which displays the variable names and their values.
Choose View Watches, or press CTRL+ALT+W.
Adding a Watch
Choose Run Add Watch, or press CTRL+f5. Type in the name of the variable you wish to watch.
Changing a Variable Value
Single-click on the Value column entry corresponding to the variable name displayed under the Variable column that you wish to override. Type in the new value.
Removing a Watch
Highlight the watch to remove. Press DELETE.
Logged Execution
Some bugs you encounter in your testing may be very difficult to reproduce, and occur only on systems which you do not have debugging access to. Under these circumstances, you can always try logged execution, in addition to the age-old method of displaying message boxes on the screen. Logged execution will create a log file and record both the internal state of the installation (along with all variable values) and the native Windows Installer log inside a plain text file. To execute a logged setup, use the following command line:
<setup.exe> /l=<path to logfile>
If your logfile path contains spaces, be sure to enclose them in double quotes.
Printed Documentation
24
Compatibility Testing
Because of the wide variety of Windows platforms available today, it is vital that you perform compatibility setting on your setups. Below is a list of all available Windows versions, excluding an even greater number of service packs available for each version:
Windows 95 Gold Windows 95 B (OSR2) Windows 95 C (OSR2.1) Windows 98 Windows 98 Second Edition Windows ME Windows NT 4 Windows NT 4 Terminal Server Windows 2000 Windows XP Windows 2003
At last count, this leaves us with eleven Windows versions, falling under the general 9X and NT families. Rest assured that each Windows version will behave differently in some subtle way, but noticeable enough just to impact your application.
MimarSinan InstallAware features a wide array of runtime components which you may install on the target system if they are not found. This helps cushion the impact that different Windows versions may have on your application. Never assume other Windows computers have all the patches, runtime components, and updates your development system is running on. And, powered by the web deployment feature, InstallAware helps assure users that already have the updates will not waste a single byte or second downloading them again.
MimarSinan International strongly recommends you include all target editions of Windows in your testing plans.
Deployment
After a project has been built and tested, it is ready for deployment. The output folder of your build, the location where you can find the files to deploy, varies by the build type.
Uncompressed Builds: <BUILD Folder>\release\uncompressed Compressed Builds: <BUILD Folder>\release\single Web Builds: <BUILD Folder>\release\web
InstallAWARE Help Library
25
The particular steps for deployment varies by build type as well.
Deploying Uncompressed Builds
An uncompressed build requires the entire build folder to be deployed. You may deploy onto any medium that is capable of replicating the exact directory structures generated by the build. This includes network drives, hard disks, and removable media (such as CDs and DVDs, which the uncompressed build mode is most suitable for).
Please note that the uncompressed layout, while storing your application files in a readily accessible state, does not permit you to randomly replace those files. Because of the nature of Windows Installer and the way it handles resiliency, if you wish to update any of the files in the installation package, you will have to rebuild the installation. Simply copying the updated file to the proper location in the build folders may cause your installation to fail.
An uncompressed build may be launched by running either the .EXE file or the .MSI file that carries the project name in the build output folder.
Deploying Compressed Builds
To deploy a compressed build, simply copy the single .EXE file that is located in the build output folder. Compressed builds provide the most flexibility in choosing your target media, since they will work with practically all media types (they neither require a directory structure to be preserved, nor Internet connectivity).
A compressed build may be launched by running the single .EXE file.
Deploying Web Builds
A web build has two steps of deployment. The first step is to place the .EXE file found in the root directory of your build folder on your desired target medium. This can be practically any location. This .EXE file is your main installation file.
The next step is publishing your web media blocks on the web. The media blocks each end with a .7zip file extension. The file names will correspond exactly to the web media blocks they contain. For instance, a web media block named mainapp will be contained inside the file mainapp.7zip. Each of these media blocks must be available for HTTP download on the precise URL as specified in the web media block script item. Continuing the above example, if the mainapp media block has the Download URL field set to http://www.mycompany.com/first_component.dat, then the file mainapp.7zip must be renamed first_component.dat and published to the root of the http://www.mycompany.com web server.
Deploying Web Builds Offline
Printed Documentation
26
A new feature in InstallAware 3.0 is the ability to deploy your entire web builds offline. If the main setup executable can locate some or all of the web media blocks it requires directly in the same folder as itself, it will first attempt to use these local copies of the web media blocks, instead of downloading them. If this attempt fails, or for web media blocks which cannot be found locally, setup will download from the web.
This option is primarily intended for use in quick deployment and testing scenarios. If you do not intend to download web media blocks during installation, Compressed or Uncompressed builds will always deliver better performance.
Getting Results Interface Elements
Change Setup Icon
You may customize the default setup icon that is used in several places throughout your setup:
Setup self extraction progress window Setup self extractor program Main setup program Setup dialogs system menu Taskbar program button Add-Remove Programs applet
To customize the setup icon
In the Project Options dialog (SHIFT+CTRL+F11), select the Add-Remove node beneath the Project node.
Click the Load Icon button and choose your custom icon.
To revert to the default icon
Remove the file icon.ico from your list of support files.
Change Your Setup Theme
InstallAWARE Help Library
27
If after creating your project you decide you wish to use another setup theme, change it using the following procedure:
Display the Project Manager . Select the Dialogs node in the tree view. Right-click and choose Add Dialogs to Project. Check Add a Pre-Built, Themed Collection of Dialogs, and select the new
theme from the drop down list.
Warning:
If you had customized any of the existing dialogs in your old theme, you will lose all those changes when the old dialogs are overwritten with the new ones from your changed theme.
Creating New Setup Themes
You may wish to customize existing setup dialogs to include your own corporate elements, and make them available for re-use in all your installation projects. The most efficient way of doing this would be by creating your own setup theme.
To create your own setup theme :
Navigate to the InstallAware installation folder using your favorite file manager. Then navigate inside the Dialogs directory.
Duplicate the folder containing the theme closest to the new theme you wish to create. For instance, if you wish to base your new theme on the Classic theme, make a copy of the Classic folder and give it a unique name, such as MyTheme.
Start the Dialog Editor. Using the editor, open each dialog stored in the MyTheme folder, and
customize all elements as necessary: Be sure to preserve existing intra-dialog relations. Also preserve pre-defined dialog behavior.
After you have customized all dialogs, use your new theme as you would any other pre-defined theme.
Feel free to send us any interesting themes you have created. We will include them for download in our online theme gallery for everyone to download and use.
Warning:
Printed Documentation
28
Be sure to store a copy of your theme folder somewhere safe, so you can use it on other computers with InstallAware, or when you need to reinstall InstallAware on your own computer.
Customizing Dialog Bitmaps
If you wish to customize the standard elements of any setup dialog, including the bitmaps shown, simply edit your dialogs in the Dialog Editor and update the desired elements.
Display the Project Manager. Double-click the dialog to edit, or select it and press enter.
Remember to save your changes before exiting the Dialog Editor. If you attempt to edit a new dialog while the old one is still showing, the editor will discard changes made to the old dialog (unless, of course, you had previously saved it).
Displaying a Splash Screen
To display a splash screen while the installation is initializing, simply create a .BMP file and add it to the setup. All bitmap types at all color resolutions are supported; however you may want to keep to 256 colors on your bitmap in consideration of older systems with graphics cards that cannot display higher resolutions.
Name the bitmap file setup.bmp. Display the Project Manager. Add the bitmap to the project as support files.
If you later need to remove or update the splash screen, simply modify its file as a regular support file. The Project Manager will maintain a reference to your bitmap file in your project and the bitmap file will be placed in your project folder.
License and ReadMe Files
To display license and readme files in your setup dialogs, you need to add the files to your setup project. Rich text and plain text files may be used for displaying licensing and readme information.
InstallAWARE Help Library
29
Name the license agreement file license.rtf or license.txt. Name the readme file readme.rtf or readme.txt. Display the Project Manager. Add the files to the project as support files.
If you later need to remove or update these files, simply modify them as regular support files. The Project Manager will maintain a reference to these files in your project and the files will be accessible in your project folder.
Using Interactive Progress Flash
You may use interactive Flash movies as part of your installation dialogs, and in particular inside a progress dialog, to educate and entertain your users while your product is installing. Flash movies provide an unprecedented rich medium for use as installation billboards, with no limits on your creativity.
Adding a Flash Control to a Dialog
In order to display interactive Flash movies in your dialogs, you first need to add a Flash control to your dialogs.
Open the dialog in the Dialog Editor. Choose the Browser tab on the component palette. Select and add the FlashFrame control to your dialog. Double-click the new control to bring up the Define Interactive Characteristics
window. Choose the Object Behavior tab, and under the Receives Information drop-
down, select Installation Billboards.
Adding a Flash Movie to a Setup
After adding the Flash control to your setup dialogs, you will want to add the movie itself.
Set the file name of the Flash movie to add as movie.swf. Display the Project Manager. Add the SWF file as a support file.
If you later need to remove or update your movie, simply modify it as a regular support file. The Project Manager will maintain a reference to this file in your project and the file itself will be accessible in your project folder.
Printed Documentation
30
Flash Runtime Deployment
To display Flash movies, the player runtime needs to be present on the end-user system. The moment a dialog containing the FlashFrame control is shown, InstallAware will automatically attempt to install the player runtime if it is not already available. If the installation fails, the dialog will not render the movie, but no setup error will occur - your installation will continue normally.
The runtime file that is used in this automated installation process is automatically added to your project as a support file under the name flash.ocx. This addition occurs moment you add a movie to your setup. You may replace the default runtime file with a newer/older version of the runtime. To do so, simply add the desired version of the runtime file as a support file under the name flash.ocx to your project. You may also delete the runtime file from the list of support files, however in this case if the end-user system lacks the runtime, none of your movies will render (although the setup itself will not be affected).
Using Interactive Progress HTML
If you were impressed by the interactive HTML content available on the InstallAware progress dialog, you will be pleased to know that you may include the same feature in your own setups. You just need to create your HTML content and the files to your project.
Name the entry point for your progress HTML index.htm. Create any additional HTML files. The files may reference one another, and
include links to graphics. Make sure none of the links on any of the pages has path specifiers -
everything should work in a flat directory structure. Display the Project Manager. Add all the HTML files and required support files (such as .GIF and .JPEG
files) to the project as support files.
If you later need to remove or update these files, simply modify them as regular support files. The Project Manager will maintain a reference to these files in your project and the files will be accessible in your project folder.
The native HTML viewer on the progress dialog does not require any runtime controls (such as the Internet Explorer control), offering maximum freedom and compatibility with all existing Windows versions. The viewer is also capable of parsing most HTML tags, supports page backgrounds, animated GIFs, page refreshes, external links to websites, and more.
InstallAWARE Help Library
31
Using Static Progress Billboards
While interactive HTML content is available on the InstallAware progress dialog, you may choose to take a more traditional route and instead display static billboards.
Author an HTML file for each billboard to display: Name the first file index.htm, Add a META REFRESH tag to each HTML file, pointing it to the next
file, Display a billboard graphic (and other relevant information) in each
HTML file. Make sure none of the links on any of the pages has path specifiers -
everything should work in a flat directory structure. Display the Project Manager. Add all the HTML files and required support files (such as .GIF and .JPEG
files) to the project as support files.
If you later need to remove or update these files, simply modify them as regular support files. The Project Manager will maintain a reference to these files in your project and the files will be accessible in your project folder.
The native HTML viewer on the progress dialog does not require any runtime controls (such as the Internet Explorer control), offering maximum freedom and compatibility with all existing Windows versions. The viewer is also capable of parsing most HTML tags, supports page backgrounds, animated GIFs, page refreshes, external links to websites, and more.
Testing Interactive Elements
While developing your setup, you may want to test the appearance of interactive progress elements, such as HTML files and Flash movies, exactly as they would appear on your progress dialogs during setup.
Open your progress dialog in the Dialog Editor. Place the files belonging to your interactive progress elements inside the
interop\templates folder of your InstallAware installation folder. Test your progress dialog.
Printed Documentation
32
Setup Logic
Run Installed Application
After creating a new setup project using the Project Wizard, if you wish to add support for running your installed application after a successful install, make the following changes in your setup script:
Search for the text:
TO-DO: Insert command that starts your application here
Select the text and insert a Run Program command above it. Specify in the Run Program command the name and path to your application.
For instance, if your application executable is called myapp.exe, specify the following Run Program command:
$TARGETDIR$\myapp.exe
Creating a Start Menu Uninstall Entry
When an InstallAware setup finishes installing on the target system, it automatically adds an entry to the Control Panel Add-Remove Programs applet. However you may also wish to create a shortcut for maintenance/uninstallation directly on the start menu group for your application. InstallAware includes a convenience variable that holds the full path and file name of the maintenance setup program which you may use for this purpose. This variable is UNINSTALLLINK. Creating a shortcut that targets $UNINSTALLLINK$ will achieve your desired effect.
The Meaning of Product and Revision Codes
The product/revision codes specified on the project options dialog are used by Windows Installer to uniquely identify your installation. If you author two installations that use the same product and revision codes, Windows Installer will treat both as installations of the same product. Therefore, pay attention to the following:
For different products, always use different product and revision codes. Whenever you generate a new project, InstallAware will automatically generate a new product and revision code for you.
InstallAWARE Help Library
33
For different versions of the same product, including product updates, you may use identical product codes, however you must use a different revision code. Having identical product codes but different revision codes between installer packages indicates that one of the packages is an upgrade.
Disk Space Calculations
If your products installation is reporting estimated disk space requirements as 0 or inaccurately, you are not making proper use of the Get Component State command in your script. InstallAware requires this command be used at least once in your installation to be able to accurately predict target disk space requirements. Please see the command reference for more information.
Multiple Installations
If you re-run an installation after it has already installed on the target system, it will display a maintenance user interface, instead of an installation user interface. This is because Windows Installer detects that the product is already installed, and enters maintenance mode.
Unfortunately, there is no way to prevent this type of behavior in Windows Installer setups. You may however change the product and revision codes every time you change your product version to help users reinstall multiple versions of the same product, or upgrade over an older version.
Upgrade Installs
InstallAware has a facility to seamlessly upgrade your older product versions to newer ones. If you use the Project Wizard to generate your setup scripts, this behavior is already implemented for you. In general, the method used for old version detection and upgrades is as follows:
Both the old product to be upgraded and the new product which is the upgrade should have the same product code. However they should have different revision codes. Read more about these codes.
Printed Documentation
34
Provided the above condition is met, the NEEDSUPGRADE pre-defined script variable will be automatically set to TRUE if a previous version of the product is found, and FALSE if not.
Check this variable and use the (Un)Install MSI Setup command to automatically remove previous versions of your product, before allowing the main setup to begin.
Notes
You may use the (Un)Install MSI Setup command with both InstallAware and non-InstallAware setups.
If your InstallAware setup has custom uninstallation logic, try uninstalling it using the Run Program command and an uninstallation command line, assuring that your custom logic executes.
Uninstalling from the Command Line
You may silently remove InstallAware setups using setup command line parameters.
Silently Uninstalling
<setup.exe> /s MODIFY=FALSE REMOVE=TRUE
In the above example, setup.exe denotes the main setup executable.
Setup Commands Preceding Apply Uninstall
InstallAware, unlike most other installation authoring toolkits, offers a unified, single script which gives you complete control over the entire installation process, including the uninstallation. However, because of design limitations in Windows Installer, you need to refrain from using new Windows Installer commands before an Apply Uninstall command. Doing so can break the integrity of your setup database and cause uninstalls to fail.
The Install - Uninstall Cycle
The points below explain the design limitation in Windows Installer.
The first time you are installing, your script executes several Windows Installer commands as required by your application. These changes are then made effective when the Apply Install command is called from your
InstallAWARE Help Library
35
script. At that point, InstallAware invokes the Windows Installer service and completes the installation.
When the setup is run again (in maintenance mode), and a repair/modify action is chosen, your script again executes the pertaining Windows Installer commands, and then calls Apply Install once again to update the system. If the set of installed features changed between the original and maintenance installs, Windows Installer is intelligent enough to reflect those changes to the system: Windows Installer commands which do not execute as a result of changed feature sets are automatically undone (example: Install Files commands belonging to unselected features are undone, since those commands did not execute in this run).
To achieve the above flexibility, Windows Installer keeps its own internal record of which actions executed during the last run.
When Apply Uninstall is called, all the Windows Installer commands from the last run will be undone, effectively uninstalling the application.
If however, immediately before executing the Apply Uninstall command, new Windows Installer commands are executed, this will destroy Windows Installer's internal records of the last standing actions. The net result will be that all installed files and registry settings belonging to your application will be orphaned on the system, without actually being removed.
Workarounds
If you simply must use Windows Installer commands before uninstalling, you may do so by following the exact procedure below.
For your new commands to work as expected, you need to call Apply Install first.
Keep in mind this will undo actions which executed during the previous run, and may cause a premature removal of some files/registry entries.
After this step is complete, call Apply Uninstall normally to undo the changes you just made and remove all traces of your application from the system.
Keep in mind that you may use non-Windows Installer commands freely at any point in your script, including immediately above the Apply Uninstall command. The Call DLL Function command especially provides a lot of flexibility in being able to invoke virtually all of the Windows API directly from your setup.
New Windows Installer Commands May Not Be Necessary
Windows Installer already has mechanisms to work around this limitation. In particular, if you wish to delete files created by your application after it was installed, it may seem that new Delete Files commands are required right above the Apply Uninstall command. However this is not the case. The Delete Files command has an option which explicitly specifies when files are to be deleted - while installing, while uninstalling, or both.
Printed Documentation
36
To delete files created by your application after it was installed:
Call the Delete Files command as part of your main installation routine (the install/maintain block), and not the uninstallation routine.
In the options for the Delete Files command, indicate that the deletion is to occur during an uninstall.
Windows Installer adds this command to its internal record, and will remove the specified files when Apply Uninstall is called at a later time.
Unfortunately, Windows Installer does not provide a mechanism to remove registry keys that are not created explicity during the installation. However, InstallAware accomodates this need by providing a non-Windows Installer command to facilitate this task.
To delete registry keys created by your application after it was installed:
Call the Delete Registry command as part of your uninstallation routine. This is not a Windows Installer command command, so it is safe to call right
above the Apply Uninstall command.
Performance
Compress Better
MimarSinan InstallAware utilizes a very advanced form of LZMA compression, featuring Binary Call Jump converter algorithms. While LZMA with BCJ2 is optimized especially for program files and crunches data like no other algorithm available today, keep the following points in mind to obtain maximum compression:
Files that have been compressed before cannot be recompressed. For example, lets say the size of your uncompressed setup is 36 MB. Assume that when ZIPped, the setup size decreases to 11 MB, and when LZMAd instead, the setup size decreases to 4 MB. Now this might lead us to think that if we use LZMA on the 11 MB ZIP, we would gain an additional 7 MB. This is not the case. No matter how strong a compression algorithm is, it can never recompress files that have been already compressed.
Make sure your help files are not pre-compressed. Help compilers may produce compressed output.
Make sure your application executables are not pre-compressed. Software protection tools, alongside executable packers, may produce compressed output.
Make sure any other data files used by your application are not pre-compressed. For instance, do not compress database files used by your application.
InstallAWARE Help Library
37
If some of your files must be compressed, use maximum compression on them. Remember, pre-compressed files - no matter how weakly they are originally compressed - can never be recompressed.
Encrypted files cannot be recompressed.
Notes
• The compression example given above refers to the actual setup program of CompreXX. Feel free to download CompreXX and validate our findings for yourself.
• Rest assured results with your own setups will also be equally remarkable.
Increasing Build Speeds
While you are testing and debugging your setups, you may find yourself frequently rebuilding your projects. Follow the guidelines below to shorten your code-build-test cycle:
• Use the Uncompressed Directory Layout build mode while you are in development. Because no compression is involved in this build mode, it will provide the fastest build times.
• If you must use one of the other build modes, customize your compression settings to shorten the time it takes to compress your data:
1. Create a custom compression profile through the Build Settings dialog
2. Set the Dictionary Size for LZMA Algorithm to 20 and Converter Algorithm to None for maximum compression throughput.
3. Use this custom compression profile in all your test builds. • If you are using the Compressed Web-Based EXE build mode, you may
further accelerate your build cycle by eliminating rebuilding web media blocks which have not changed since the last build. Enable the Skip on Build option in your Web Media Block commands which you wish to avoid rebuilding.
Sharing Web Media Blocks
If you have web media blocks with identical file contents across multiple setups, such as web media blocks containing common setup pre-requisites, you may share them across your setups:
Printed Documentation
38
• Make sure each web media block contains an identical collection of files. • Use the same Download URL in each Web Media Block command.
This way, you will have a single global copy of the web media block file online, instead of one copy for each setup project that uses it.
Reference Project Options
Project Settings
Project settings control aspects of your installation which are not available in your installation script. These settings allow for changing the product name and code, among other things. To access your build settings, choose Project Options or press SHIFT+CTRL+F11.
Project Node
This page lets you define the most basic aspects of your installation.
Manufacturer
Enter your company name here.
Product Name
Enter the name of the product the setup will install here. This name will be available in the setup script as the TITLE variable.
Product Version
Enter the version of the product being installed here.
Product Code
Click the Generate button to generate a new product code. The product code uniquely identifies your installation to Windows Installer. It must be unique in each different product, as well as different versions of the same product. This code will be available in the script as the PRODUCTCODE variable.
Upgrades Product with Product Code
InstallAWARE Help Library
39
If your installation upgrades a previous version, enter the product code of that version here.
Language
Choose the language of your installation from the drop-down list.
Summary Node
This page lets you compose the summary stream information that will be available in the Windows Installer database. Be sure to set a unique Revision Code by pressing the Generate button any time you change your Product Code defined on the Project Node.
Add-Remove Node
This page lets you configure the way your application appears on the Control Panel Add-Remove Programs applet. Fill in the fields as necessary. The value entered for the Publisher Name field will be available in the setup script as the COMPANY variable.
Compiler Variables Node
The list of all defined compiler variables for the current project is displayed on this page. Press the Add button to define a new variable. Double-click an existing variable, or choose an existing variable and press the Edit button to modify it. Press the Delete button after selecting one or more compiler variables to remove them.
Build Settings
Build settings control how your setups are built. These settings allow for changing the deployment type (uncompressed, compressed, web), among other things. To access your build settings, choose Project Options or press SHIFT+CTRL+F11.
Authenticode Node
This page lets you digitally sign your packages with authenticode. Provide the paths to your certificate and key files to enable code signing. The default value for the time stamp URL is http://timestamp.verisign.com/scripts/timstamp.dll.
Build Node
This page lets you configure your deployment type. The various kinds of deployment types, along with their uses, are explained below. Pick the one that is most suitable for your target audience. If you will be debugging your setup inside the IDE, also ensure the Debug Build checkbox on this page is checked.
Printed Documentation
40
Uncompressed Directory Layout
Your setup is contained in multiple files spanning several layers of multiple nested folders. Each file is uncompressed and immediately available, minimizing installation time, since files will not be uncompressed from an archive or downloaded before installation.
This type of deployment is ideal for CD/DVD media where disk space is not a concern and multiple files/folders can be stored. It also works well on network drives.
Compressed Single Self-Installing EXE
Your setup is contained inside a single self extracting file. This file, when run, will first extract its contents to a temporary folder, and then start the main setup program. In essence, when executed, the compressed layout converts into the uncompressed layout.
This type of deployment is suitable for Internet distribution, since the entire setup is contained inside a single file.
Compressed Web-Based EXE
Your setup is comprised of a self extracting file, which similarly to the compressed layout, extracts its contents and starts the main setup; as well as web media blocks, which are defined in your setup script and are downloaded as required from the web.
This type of deployment is ideal for Internet distribution. Setup will download only the web media blocks which are required on the target system. This saves download times and bandwidth since users will not waste either downloading portions of your application and/or its runtimes which they do not need.
Compression Node
This page lets you configure the strength of the compression employed while creating your setups. By default, the optimal settings for your system will be selected. To customize your compression parameters:
1. Click Create New to create a new compression profile, if you have not previously done so.
2. The profile editor opens with your new compression profile. The compression profile contains several settings that may be configured. Edit your compression profile.
3. Click OK in the profile editor to save your changes, and highlight the new profile in the compression node to activate your new settings.
The table below briefly describes relevant settings in the profile editor.
InstallAWARE Help Library
41
Page Setting Explanation
General Settings
Priority Priority of compression task. Set to Idle for background compression. Set to Normal for full throttle.
General Settings
Store Folder Information
Only Relative allowed.
7-Zip Type
Solid Compression Set to On for best performance. Off will decrease compression.
7-Zip Type
Header Compression Set to On for best performance. Off will slightly decrease compression.
7-Zip Type
Compression Algorithm
Only LZMA allowed.
7-Zip Type
Dictionary Size for LZMA Algorithm
Recommended range is 22-25. Values above 22 require at least 256 MB RAM on development system, and 32 MB RAM on target systems. Values lower than 22 will significantly hurt compression.
7-Zip Type
Match Finder Method for LZMA Algorithm
Set to Binary Tree with 2-3-4 bytes hashing for best performance. Other values may decrease compression.
7-Zip Type
Fast Byes for LZMA Algorithm
Set to 255 for best performance. Lower values will decrease compression.
7-Zip Type
Converter Algorithm Set to BCJ2 for best performance. Other values will degrade compression.
7-Zip Type
BCJ2 Converter Algorithm 1
Only LZMA or None allowed. Values other than LZMA will degrade compression.
7-Zip Type
BCJ2 Converter Algorithm 2
Only LZMA or None allowed. Values other than LZMA will degrade compression.
7-Zip Type
Multiprocessor or Hyperthreading
Set to ON if you have a hyperthreading system, or multiple processors.
Output Node
This page allows you to customize additional build settings:
Printed Documentation
42
• If you wish to customize the output folder, check Custom Folder and provide your preferred output folder. By default, builds will exist under your project folder.
• If you wish to customize the name of your main setup executable, enter it in the Output filename field. Leave this field empty to use the default name, which is the same as your project file name.
• If you wish to automatically update the revision code every time you build (excluding batch builds), check Change revision code automatically upon rebuild. This setting must be unchecked when debugging your setup. Checking it will enable seamless, automatic upgrades of your product.
Project Wizard
Project Wizard
The Project Wizard offers a completely visual way to generate your installation scripts. To display the wizard:
1. Save any changes you have made to the installation open in the IDE. 2. Choose File New Project Wizard, or click the New icon on the toolbar,
and double-click the Project Wizard icon.
After you have displayed the wizard, navigate through the pages using the Back and Next buttons, or by directly clicking the section you wish to navigate to. When you click Next on the last page of the wizard, a fully operational setup script will be generated, which you may further customize and edit in the script editor.
Product
The Product page allows you to enter general information about your product. The information entered here will be used throughout the setup.
Name
The name of your product.
Version
The version number of your product.
InstallAWARE Help Library
43
Manufacturer
The company that is the manufacturer of the product.
Copyright
Legal copyright information.
Website
The product website.
Conditions
The Conditions page allows you to check the target system for a minimum of available hardware and software. It also enables installing runtime components on the target system, if they are not already found. An enhanced selection of runtime components is available with the Enterprise edition of InstallAware.
Minimum Operating System
If you choose an operating system, the installation will not proceed unless the target computer has at least that operating system installed. If you choose an operating system platform, the installation will not work on any platform except the chosen one.
Minimum Internet Explorer Version
If you choose an IE version, the installation will not proceed unless the target computer has a browser that is the chosen version or newer.
Minimum Memory
This feature allows to check for a minimum of physical memory installed on the target system. The installation will not proceed unless the minimum indicated amount of physical memory is installed. This feature does not check for available virtual memory.
Minimum Resolution
This feature allows to check for a minimum display resolution on the target system. The installation will not proceed unless the minimum resolution is available on the target system.
Windows Installer 2.0
Printed Documentation
44
Version 2.0 of Windows Installer must be present on the target system for the installation to run. Make sure this component is checked to assure Windows Installer 2.0 will be installed if not already present.
Warning:
If you uncheck this component, your setups may fail .
Microsoft .NET Framework 1.1
If your application runs on the .NET Framework, check this component to install Microsoft .NET Framework 1.1 on the target system, if not already present.
Microsoft JSharp Redistributable
If your application is both a .NET application and also requires the JSharp redistributable, check this component. The JSharp redistributable will be installed if not already present on the target system.
DirectX 9b
If your application is a game, or makes use of the DirectX APIs, check this component. The DirectX 9b redistributable will be installed if not already present on the target system.
MDAC Refresh 2.8
If your application is a database application that makes use of data access components, check this. The MDAC 2.8 refresh will be installed if not already present on the target system.
Visual Basic VM SP6
If your application is a Visual Basic 6 application, check this component. The Visual Basic 6, Service Pack 6 virtual machine will be installed if not already present on the target system.
Visual C++ Runtime SP6
If your application is a Visual C++ application and is dynamically linked to ADO/DAO/MFC/VC language DLLs, check this component. The Visual C++ 6 Runtime, Service Pack 6, will be installed if not already present on the target system.
Features
InstallAWARE Help Library
45
A feature enhances the functionality of an application, however the application does not require the feature to operate. While not all applications will have features, most sophisticated applications will. Moreover, if you are installing more than one application with your installation, each application may be defined as a feature.
Features are defined on the Features page:
• To add a new feature, choose the parent feature, and click New . If the feature is a top-level feature (it has no parent), choose All Features and click New.
• To delete a feature, choose the feature, and click Delete. All sub features of the selected feature will also be deleted.
• To rename a feature, choose the feature, click Rename, and type in the new name for the feature.
• If your application has no features, delete all items on this screen except the All Features item, which cannot be deleted.
• The user will only see the features defined on this tab if (s)he performs a custom setup. Only the first feature defined on this tab (without any subfeatures) will be installed if the user requests a minimum installation.
• Each defined feature will be placed in its own Web Media Block. The All Features feature will be placed in an Offline Media Block.
Files
Copying files onto the target system is one of the most vital setup functions to be performed. The Files page allows you to choose which files and folders are copied onto the target system.
Adding Files
1. First, use the combo box to choose which feature the files to copy belong to. Unless that feature is selected during setup, the files will not be copied. Use the Feature Independent selection to indicate files that should be copied regardless of selected features.
2. Choose the target folder on the destination system that the files should be copied into.
3. Click the Add Files button and choose one or more files to copy into the chosen folder.
4. If you select some files in error, highlight them and click the Delete button. 5. If you need to copy files into subfolders of the designated target folder,
add the items as folders instead.
Printed Documentation
46
Adding Folders
• First, use the combo box to choose which feature the folders to copy belong to. Unless that feature is selected during setup, the folders will not be copied. Use the Feature Independent selection to indicate folders that should be copied regardless of selected features.
• Choose the target folder on the destination system that the folder should be copied into. The folder will become a subfolder inside the destination folder.
• Click the Add Folder button and choose a folder to copy into the destination folder. The chosen folder will be copied along with all files and further subfolders inside it.
• If you select a folder in error, highlight them and click the Delete button. • If you need to copy individual files instead of folders, add the items as files
instead.
Shortcuts
Shortcuts defined on the Shortcuts page allow the end-user to launch the installed application, from the Desktop, Start Menu, or Explorer through file associations.
Before defining shortcuts, make sure you have selected some files to be installed on the target system using the Files page. Then:
1. Click the New button. 2. In the file browser, navigate to the feature that contains the file which the
shortcut will point to. 3. Navigate to the file itself and click OK. 4. If you choose a file in error, click Delete to remove it from the shortcuts
list. 5. To rename the shortcut, click the Rename button. 6. The following options are available for your shorcuts. You may select
more than one option simultaneously: o Place shortcut in Start Menu: Creates a shortcut in the Start Menu
folder for your application. o Place shortcut on the Desktop: Creates a shortcut on the Desktop
for your application. o Associate a file type with shortcut: Creates a file association with
the executable the shortcut points to, and the indicated file extension (do not enter a period character before the file extension).
InstallAWARE Help Library
47
Registry
The Registry page assists you in defining registry entries for your application. The registry is frequently used to store system-wide application information.
1. First, use the combo box to choose which feature the registry entires belong to. Unless that feature is selected during setup, the registry entries will not be created. Use the Feature Independent selection to indicate registry entires that should be created regardless of feature selection.
2. Choose a target key for the registry entry. 3. Click New and add the subkey(s) your registry entry falls under. 4. If you add a subkey in mistake, click Delete. 5. Click New and create your registry entry. Leave the Value Name field
empty if you will be creating a default value. 6. To correct a registry entry, choose it and then click Edit. 7. To delete a registry entry, choose it and then click Delete.
Dialogs
The Dialogs page helps you choose a dialog theme and a maintenance mode for the user interface of your setup.
Dialog Theme
The dialog theme controls the appearance of your setup user interface. Regardless of the actual dialogs you choose to display, the theme determines how the general appearance of the dialogs will be. You will most likely want to preview the available themes before settling on a theme for your setup project.
To preview available dialog themes, choose a theme, and click View Theme. Different themes will be better suited to different types of applications. Be sure to try each theme.
Maintenance Mode
The maintenance mode setting determines what happens when the user re-runs setup, after having already installed your product on his/her computer. Please note that re-running setup after your product has been installed is identical to choosing your product's Change/Remove button in the Control Panel Add Remove Programs listing.
I wish to allow a maintenance user interface
Printed Documentation
48
If this setting is enabled, the user will be presented with a maintenance dialog, offering three options: Modify, Repair, and Remove.
• If Modify is chosen, a feature selection dialog will be shown, and the product will be reinstalled using the newly selected features.
• If Repair is chosen, the product will be reinstalled using exisiting feature selections.
• If Remove is chosen, the product will be uninstalled.
If either Modify or Repair has been chosen, the product will be reinstalled. This may mean that product configuration files modified by the user may be replaced with their originals.
I prefer to provide an uninstall option only
If this setting is enabled, the user will be asked whether (s)he wants to uninstall the product, and if comfirmed, the product will be removed from the user's system.
Media
The Media page offers a selection of build modes, encompassing a wide variety of distribution channels.
Uncompressed Directory Layout
The setup is comprised of a collection of uncompressed files and folders, spanning multiple directories, and several levels deep. This media type is ideally suited for software distribution on CDs/DVDs. Because no compression is applied, setup performance will be at maximum. However for the same reason, disk space requirements will also be highest.
The multiple levels of files and folders generated by this media type make it impractical for distribution over the Internet, or where single files are required to contain the entire installation.
Compressed Single Self-Installing EXE
The entire setup is packaged into a single executable file. When run, this executable file will first extract its contents onto a temporary location, and then start the installation. This is the most economical media layout in terms of disk space. Both because the entire setup is located inside a single file, and the superior compression employed, this media type is also ideal for Internet distribution.
InstallAWARE Help Library
49
Compressed Web-Based EXE
The setup is split into multiple web blocks, which are dynamically downloaded from the Internet at install time as required. Only the runtime components which the user does not already have, along with the features requested for the install, are downloaded. While the splitting reduces some of the compression gains, this media type offers the optimal performance, because of the selective download feature.
The setup is started by a single executable file which will download other blocks as necessary. The single file can be distributed on any medium, and the web blocks must be placed on a web server.
Build in Custom Folder
If you wish to change the build folder of your setup projects (default is the project folder), check Build in Custom Folder, and click Browse to choose the new build folder.
Build Project Now
Checking this item will immediately build a release of your project as soon as you click the Next button on this wizard page.
Scripting
Introduction
Classes of Commands
There are several types of commands which are available to you in your scripting. Each command type is highlighted differently in the script editor. These command classes are enumerated below.
Comment
Comments refer both to Comment commands and also portions of code which have been commented out.
Flow Control
These alter program flow, and include commands like Wizard Loop and If.
Plug-In
Printed Documentation
50
Plug-in commands perform highly customized actions, from installing runtimes to downloading files.
Directive
Compiler directives are not constrained by program flow and perform compile time tasks, such as the Web Media Block command.
Windows Installer
Windows Installer commands actually perform installation tasks and modify the target system. Every command in InstallAware which effects the target system is a Windows Installer command.
Modify System
Modify system commands finalize queued changes and execute Windows Installer. The Apply Changes command is in this category.
Label
Label commands are used in conjunction with GoTo Label commands.
Statement
Commands that display dialogs, obtain general system information, and perform other similar tasks fall in this category.
Pre-Defined Variables
Each InstallAware project contains pre-defined variables. These variables are automatically initialized when setup begins based on the state of the target system, your project settings, and whether the application has been previously installed or not. The full list of pre-defined variables and the values they contain is displayed below:
• ABORT: TRUE if the Cancel button has been clicked,FALSE if not. Setting this variable has no effect on the state of the Cancel button.
• ALLUSERS: Initially TRUE if platform is NT, FALSE if not. Set to TRUE to perform an installation for all users and FALSE to perform an installation for the current user only.
• CMDLINE: The command line string passed to the installation program. • COMPANY: The company manufacturing the product, as set in the
Publisher Name field of the project options dialog.
InstallAWARE Help Library
51
• COMPLETE: Initially TRUE. Indicates whether a complete installation will be performed.
• DATADIR: The root of the directory containing the files to be installed. • EXEDIR: The folder containing the setup executable itself. • EXEFILE: The full path and file name of the setup executable. • LASTERROR: Initially an empty string. After Windows Installer executes,
set to the last error that occured during execution, if any. • LICENSE: Initially FALSE. Indicates acceptance of the EULA. • LOGGED: Initially set to the full path for the log file requested in the
command line. If an empty string, indicates no logging has been requested at the command line. Set to a valid path name to enable logging from script.
• MAINTENANCE: Initially TRUE if application has been installed before, FALSE otherwise.
• MINIMUM: Initially FALSE. Indicates whether a minimum installation will be performed.
• MODIFY: Initially TRUE. Indicates if the existing installation should be modified.
• MSIFILE: The full path and file name of the setup installation database. • NEEDSUPGRADE: TRUE if a previous version of the product was found,
FALSE otherwise. • NEWLINE: This is not a real variable, but indicates a new line character. • PERSONALIZED: Initially FALSE. Indicates whether a custom setup
should be performed. • PRODUCTCODE: Set to the full GUID of the product code, as set in the
installation database and configured at the project options dialog. • PROGRESS: Initially 0. A numerical representation of the current position
in installation progress, where 0 is nothing and 100 is complete. This value is displayed in progress dialogs.
• PROGRESSTEXT: Initially an empty string. A string description of the current installation task. This value is displayed in progress dialogs.
• REBOOTCOMPUTER: Initially FALSE. After Windows Installer executes, indicates whether the computer needs to be rebooted for the changes to take effect.
• REMOVE: Initially FALSE. Indicates whether the product should be uninstalled.
• REPAIR: Initially FALSE. Indicates whether the existing product installation should be repaired.
• REVISIONCODE: Set to the full GUID of the revision code, as set in the installation database and configured at the project options dialog.
• ROOTDIR: The folder containing the setup executable itself.
Printed Documentation
52
• RUNAPP: Initially TRUE. Indicates whether the application should be executed at the end of the installation.
• SFXFILE: If an uncompressed directory layout is used, this variable is empty. Otherwise set to the file name of the self extracting executable which bootstrapped the installer.
• SFXPATH: If an uncompressed directory layout is used, this variable is empty. Otherwise set to the full path of the folder containing the self extracting executable which bootstrapped the installer.
• SILENT: Initial value set on the command line. TRUE if a silent install should be performed, and FALSE if not. Set the value of this variable from the script to change silent installation mode.
• STARTMENU: Initial value set to the name of the product being installed, as set in the project options dialog.
• SUPPORTDIR: Points to the full path of the temporary folder that support files are extracted to before installation beings.
• TARGETDIR: Initial value set to <Program Files Directory>\Application Title, using the name of the product being installed as the application title.
• TEMPDIR: Full path to the temporary folder location on the target system. • TITLE: Initial value set to the name of the product being installed, as set in
the Product Name field of the project options dialog. • USERCOMPANY: Initial value set to the name of the company that
licensed Windows on the system the product is being installed. • USERNAME: Initial value set to the name of the person that licensed
Windows on the system the product is being installed. • UNINSTALLLINK: Initial value set to the full path of the uninstallation
setup program. • WIZARD: Initial value set to NEXT.
Using Variables
Most commands in InstallAware work with variables. You will be storing the state of your installation, choices the end user made, among other things, in your script variables. Keep the following things in mind when working with variables:
• When specifying a variable for a command that expects a variable, just type in the variable name. For instance, if the variable is called MYVAR, simply type MYVAR.
• With commands that do not specifically expect a variable, and work with string literals, you may still use variables, however you must dereference them. The syntax for dereferencing a variable in InstallAware is enclosing the variable name between dollar signs. For instance, if the variable is
InstallAWARE Help Library
53
called MYVAR, dereference the variable using $MYVAR$. You may freely combine multiple dereferenced variables in your string literals.
Unless the command you are working with explicitly indicates otherwise, you can always use either a variable or a dereferenced variable.
Pre-Defined Compiler Variables
In addition to pre-defined variables, each InstallAware project also contains pre-defined compiler variables. These compiler variables are automatically initialized when you compile your setup based on your project settings, even if you have not explicity defined them. Explicitly defining a compiler variable will override the implicitly defined value. The full list of pre-defined compiler variables and the values they contain is displayed below:
• BUILDMODE: CD if the deployment type is Uncompressed Directory Layout, SFX if the deployment type is Compressed Single Self-Installing EXE, WEB if the deployment type is Compressed Web-Based EXE.
Using Compiler Variables
InstallAware offers compiler variables in addition to regular, script variables. Compiler variables may be thought of as IFDEF statements available in traditional programming languages. The Compiler Variable If, Compiler Variable Else, and Compiler Variable End statements allow conditional compilation. In addition, much like constants, compiler variables may be used in the script to represent unchanging values.
The values compiler variables can take are set at compile time, either from the IDE or from the command line.
• When specifying a compiler variable for a command that expects a compiler variable, just type in the variable name. For instance, if the variable is called MYCOMPVAR, simply type MYCOMPVAR.
• With commands that do not specifically expect a variable, and work with string literals, you may still use compiler variables, however you must dereference them. The syntax for dereferencing a compiler variable in InstallAware is enclosing the variable name between pound signs. For instance, if the variable is called MYCOMPVAR, dereference the variable using #MYVAR#. You may freely combine multiple dereferenced compiler variables in your string literals.
Printed Documentation
54
You can always use compiler variables where regular string expressions are allowed, even if regular (script) variables have been prohibited.
Built-In Commands
Apply Changes
This command applies all pending changes to the target system. Each queued installation action will execute through Windows Installer in a single pass when this command is called.
Return Success State in Variable
This variable holds the result of the installation action. The following values are returned:
Value Meaning
CANCEL Installation was cancelled by the user.
COMPLETE Installation was completed successfully.
ERROR An error occured during installation. The error description is available in the LASTERROR variable.
REBOOT Installation was completed successfully, however a reboot is required.
Action to Perform
• Check Install Product to install your product for the first time, or in maintenance mode.
• Check Uninstall Product to remove a previously installed product.
Notes
• If no commands which effect the target system have been authored into your setup, this action will fail.
• In wizard generated installs, the SUCCESS variable is used to hold the outcome of this command.
• More than one Apply Changes command may be used in your script if necessary.
InstallAWARE Help Library
55
Check File Version
This command compares a file version number to another file or a pre-set version string.
Variable
This variable holds TRUE if the file indicated by the Is File parameter is newer. If the file carries the same version or is older, the variable holds FALSE.
Is File
Indicates the source file for the comparison. Only a single file may be specified. If the specified file does not contain version information, its version will be assumed to be 0.0.0.0.
Newer than File
To compare with another file, check this item and provide the target file for the comparison. Only a single file may be specified. If the specified file does not contain version information, its version will be assumed to be 0.0.0.0.
Newer than Version Number
To compare with a version string, check this item and provide the version string. If the version string is absent, it will be assumed to be 0.0.0.0.
Comment
This installation command helps you create a remark in your code. It has no effect on the installation.
Edit Comment
Type your remark here. Leave this field empty to display an empty line in your script.
Compiler Variable Else
Printed Documentation
56
This command is used in conjunction with Compiler Variable If commands. It has no configurable parameters. It is used to direct conditional compilation.
Compiler Variable End
This command is used in conjunction with Compiler Variable If commands. It has no configurable parameters. It is used to direct conditional compilation.
Compiler Variable If
This command is used to achieve conditional compilation. It is used in conjunction with the Compiler Variable Else and Compiler Variable End commands.
Variable
Type the name of the variable, according to the value of which the conditional evaluation will be performed.
Comparison
Choose a comparison type from the drop down menu. If both variables contain integer values, a numeric comparison will be performed. If at least one variable contains a non-integer value, a string comparison will be performed.
Reverse Comparison
Check this checkbox if you wish to execute an if not evaluation.
Compare With
Provide the string literal to perform the comparison with.
Control Service
This command starts or stops, and optionally deletes a service.
Service Name
InstallAWARE Help Library
57
Enter the name of the service to control here.
Command Line Arguments
Provide any command line arguments to the service file here.
Control
Using the drop down list, choose the type of control to perform on the indicated service.
Wait for service state change completion
Check this item to wait until the control operation completes on the service. Uncheck this item to return as soon as the control operation request has been sent to the service.
Convert Path
This command converts a long file name path to a short file name path, or vice versa. Long file name paths may contain spaces and extended characters; short file name paths may not contain either. This command is especially useful when passing command line parameters to external programs. It is best to use short file names because embedded spaces in paths may be interpreted as new parameters, and the program may not recognize the double quote character that generally surrounds long path names. An example for such a program with which short path names should be used is rundll32.exe.
Variable
This variable holds the path to convert. It will be replaced with the updated path after the conversion.
Operation
• Check Convert to Short Path to convert a long path name to a short path name.
• Check Convert to Long Path to convert a short path name to a long path name.
Notes
• If the original path cannot be found, the command will return an empty string in the variable.
Printed Documentation
58
Copy/Move Local Files
This command copies or moves files that are already present on the target system into a new location on the target system. It should not be used for installing new files onto the system.
Source Folder
Specifies the source path for copying files from. Must point to a valid folder.
Source Files
Specifies the source files to copy. You may use wildcards. You may not use any variables in this field, only string literals are allowed.
Target Folder
Specifies the target path for copying files to. Must point to a valid folder.
Target Files
Fill in this field only if you wish to rename the target files as part of the operation. You may use wildcards. You may not use any variables in this field, only string literals are allowed.
If the Source Files field is *.txt and the Target Files field is *.dat, each file ending with a .txt extension on the Source Folder will be copied to the Target Folder as a file ending with a .dat extension.
Copy Files
Check to indicate the operation is to copy files.
Move Files
Check to indicate the operation is to move files.
Notes
• Files copied or moved by this command are not removed upon uninstallation. Therefore, if removal of such files is required, accompany each Copy/Move Local Files command with a Delete Files command that is set to undo the copy/move local action.
InstallAWARE Help Library
59
Create File Type
This command creates a new file type, binds one or more file extensions to the file type, and associates the file type with an application.
File Type
The file type to create. This file type will own one or more extensions and be associated with an application.
Opens With
Full path to the application executable which is associated with the file type.
Description
The end-user visible description for the file type.
Icon File
If a custom icon will be used instead of the default icon of the application that is being associated with the file type, enter the full path to the file containing the custom icon here. You may specify an executable, library, or icon file.
Icon Number
If an icon other than the first icon should be used, enter the index of the icon to use here.
List of Extensions Belonging to File Type
Enter the file extensions that are owned by the file type. You should provide at least one file extension.
Verb
Enter a canonical or custom verb indicating an operation that is available for this file type in the system shell, such as Open or Print.
Parameters
Enter the command line parameters to be passed to the application associated with this file type for the current verb.
DDE Command, DDE Application, DDE Topic
Printed Documentation
60
If the application supports DDE, enter the values into the DDE fields to be passed to the application associated with this file type for the current verb. Otherwise leave these fields empty.
Notes
• This command is internally implemented as a series of Write Registry calls.
Create Folder
This command creates a new folder, or multiple sets of folders, on the target system.
Folder
Indicates the full path to the folder to create.
Notes
• Installation actions will automatically create their required target folders, if they are not already found. You do not need to use the Create Folder command to explicitly create such folders.
Create ODBC DSN
This command creates an ODBC data source.
Data Source Name
Enter the name of the data source here. If you wish to duplicate the settings of a DSN already existing on your system, click the drop-down arrow and choose the DSN to capture.
Driver Name
Enter the name of the data provider here.
Registration
• Check Per Machine to create a System DSN. • Check Per User to create a User DSN.
InstallAWARE Help Library
61
Attributes
Specify your data source attributes here. You may enter multiple attributes by pressing CTRL+ENTER.
Notes
• Do not dereference variables using $ signs in the Attributes field. • Dereference variables using square brackets instead. • For instance, instead of using $TARGETDIR$, use [TARGETDIR].
Create Shortcut
This command creates a shortcut to a file on the target system. The shortcut may point to any file on the target system, including pre-existing files.
Shortcut to File
The full path of the file that the shortcut will open.
Link Name
The name of the shortcut as it will appear on screen.
Link Location
The folder that will contain the shortcut.
Link Description
The tooltip hint for the shortcut.
Command Line Parameters
If the file specified by the Shortcut to File parameter will be launched using command line parameters, enter them here.
Startup In Folder
If you wish to customize the folder in which the file specified by the Shortcut to File parameter will be launched, specify that folder here.
Icon File Path
Printed Documentation
62
If you wish to customize the shortcut icon, enter the full path to that file in this field. No variables are allowed, only string literals are accepted. The path must point to a file on your development system. This field cannot be used to point to files on the target system. The icon will be extracted during compile time of your installation.
Icon Number
If you specified an Icon File Path, also indicate the number of the icon as it is found in the file for the shortcut.
Window Size
Choose a startup window size for the file specified by the Shortcut to File parameter.
Define Component
This command defines a setup component which will be visible in dialog boxes that display available application features.
Component Name
Enter the name for the component here. Specify subcomponents of parent components using the \ character, much as you would specify subfolders of a parent folder. Note that parent components also need to be explicitly defined if you wish them to respond to user selections.
The name of the component entered here will be visible in dialog boxes that display available application features.
Component is Initially Selected
Check this checkbox if the component should be selected by default.
Component Description
Enter a multi-line description of your component here. Press CTRL+ENTER for a line break. This information will be visible in dialog boxes that display available application feature descriptions.
Delete Files
InstallAWARE Help Library
63
This command deletes files already present on the target system.
Delete from Folder
Specify the full path to the folder containing the files to delete.
Files
Specifies the files to delete. You may use wildcards. You may not use any variables in this field, only string literals are allowed.
Delete when Installing
Check to have the files deleted when the product is being installed or maintained.
Delete when Uninstalling
Check to have the files deleted when the product is being uninstalled.
Notes
• If you use the Copy/Move Local Files command in your script, you may want to pair each such command with a Delete Files command that undoes the operation using the Delete when Uninstalling option, since the local files command does not undo its action upon uninstallation.
Delete Registry
This command deletes a value or an entire key from the system registry.
Root
Select the root of the delete operation using the drop down menu.
Key
Type the name of the key to delete (from).
Value
Type the value to delete. Leave empty to delete the default value. If you are deleting the entire key, this field is ignored.
Printed Documentation
64
Delete Entire Key (and subkeys)
Check this item to delete the entire key, along with any subkeys it contains.
Delete Value Only
Check this item to delete the named value only.
Warning
• Windows Installer does not provide a mechanism to delete registry keys. This action will not execute through the Windows Installer engine and is provided as a convenience for the setup developer.
• We recommend you create all registry keys used by your application as part of your setup. Doing so assures Windows Installer will automatically remove all such keys upon uninstallation.
Display Dialog
This command displays a dialog that is part of your user interface.
Dialog
Click the drop down arrow to select a dialog that is available for use in your project.
Modal
If the dialog is part of a wizard loop, or queries the user for some information, check this checkbox. If the dialog is a progress dialog, and must remain visible on screen while some installation task is executing, uncheck this checkbox.
If Variable
If you wish to display the dialog only if a particular variable is set to TRUE or FALSE, type the name of that variable here, and select the appropriate condition.
Return Result in Variable
Applicable only the modal dialogs. Setting a variable in this field allows you to determine how the user exited the dialog. Possible values the variable may hold are explained below.
InstallAWARE Help Library
65
Value Meaning
NOTMODAL The dialog was not displayed modally.
NEXT The user exited the dialog by clicking the Next button.
BACK The user exited the dialog by clicking the Back button.
CANCEL The user exited the dialog by clicking the Cancel button.
Notes
• In wizard generated installs, the WIZARD variable is used to hold the return value of the dialog.
Does File/Folder Exist
This command lets you check for the existence of a file or folder on the target system.
Variable
Type the name of the variable that will hold TRUE if the item exists and FALSE if it does not.
Path
Type the full path of the item to check for.
Check for File
Check this box if the item must be a file.
Check for Folder
Check this box if the item must be a folder.
Edit INI File
This command creates, updates or removes a .INI file entry on the target system.
Printed Documentation
66
INI File Path
Type the full path to the INI file to edit. Do not include the name of the INI file in this field.
INI File Name
Type the name of the INI file to edit. You may not use any variables in this field, only string literals are allowed.
Section
Type the name of the INI section to edit.
Key
Type the name of the section key to edit.
Value
Type the value the key under the indicated section should take.
Action
Choose the desired editing action from the drop down list.
End
This command is used in conjunction with If commands. It has no configurable parameters. It is used to direct program flow.
Extract Path
This command manipulates a path string to extract the requested drive, folder, file name, or file extension information.
Variable
This variable holds the path to convert. It will be replaced with the updated path after the conversion.
InstallAWARE Help Library
67
Operation
Choose the type of operation to perform. The table below lists the result of each of the available operations against a sample path value of C:\Program Files\My Company\application.exe.
Operation Resulting Value
Extract Full File Name application.exe
Extract File Name Only application
Extract File Extension Only exe
Extract File Folder C:\Program Files\My Company\
Extract Parent Folder C:\Program Files\
Extract Parent Drive C:\
Get Component State
This command determines if a component defined using the Define Component command is selected for installation.
Component Name
Type the name of the component here, including its full path as originally used in the Define Component command.
Selection State Variable
Type the name of the variable that will receive TRUE if the component is selected and FALSE if it is not.
Notes
• In wizard generated installs, the SELECTED variable is used to test selection of each component.
• InstallAware calculates disk space requirements for each component in connection with the Get Component State command. Each installation
Printed Documentation
68
action following a Get Component State command is added to the disk cost of the component that the command checks the selection of. You must use Get Component State commands for each of your components for accurate disk space requirements reporting.
Get Environment
This command obtains the value of an environment variable.
Environment Variable
The name of the environment variable that the value will be obtained from.
Variable
The name of the script variable that will receive the value of the environment variable.
Get File Version
This command obtains the version number of a file.
File Path
Full path to the file that version information should be extracted from.
Variable
The name of the variable that receives version information. The version is represented in human readable form. If version information is not found in the file, this variable will contain the value 0.0.0.0.
Notes
• To compare a file version to another file version, use the Check File Version command.
Get Folder Location
InstallAWARE Help Library
69
This command obtains the location of a pre-defined folder on the target system.
Variable
Type the name of the variable to hold the folder location.
Folder
Choose the pre-defined folder that the location should be obtained for.
Get for All Users
Has effect only on NT operating systems. If checked, the command will attempt to obtain the location of the pre-defined folder that is shared by all users of the target system, if it is available.
Notes
• If the requested location cannot be found, the variable will hold an empty string.
• In wizard generated installs, the following variables hold the following folder locations:
Variable Folder Location
PROGRAMFILES Typically C:\Program Files
COMMONFILES Typically C:\Program Files\Common Files
SHORTCUTFILESALL Typically C:\Documents and Settings\All Users\Start Menu\Programs
SHORTCUTFILES Typically C:\Documents and Settings\<user>\Start Menu\Programs
DESKTOPDIR Typically C:\Documents and Settings\<user>\Desktop
WINDIR Typically C:\Windows
WINSYSDIR Typically C:\Windows\System32
Get INI File Settings
Printed Documentation
70
This command reads the value of a section key from a .INI file.
Variable
Type the name of the variable to hold the obtained value here.
INI File
Type the full path to the INI file containing the value.
Section
Type the name of the INI section.
Key
Type the name of the section key.
Notes
• If the requested INI file, section, or key cannot be found, the variable will hold an empty string.
Get System Settings
This command obtains information on whether the target system meets minimum capabilities.
Variable
Type the name of the variable that will hold TRUE if the system meets the minimum capability, and FALSE if not.
Capability
Choose the capability to check for using the drop down menu.
Notes
• This function only checks for a minimum capability. For instance, if you are checking for 32 MB Physical Memory, the function will return TRUE if the target system contains at least 32 MB physical memory, and more.
InstallAWARE Help Library
71
Get Temporary File
This command obtains a temporary file name.
Variable
This variable receives a fully qualified temporary file name, located in the system temporary files folder.
Notes
• This function does not create a file with the given name, it only obtains a legal temporary file name.
GoTo Label
This command directs program execution to the indicated Label. The label must be previously defined.
GoTo Label
Type the name of the label to direct program execution to, as exactly defined by the Label command.
Notes
• If the GoTo Label is called while inside a conditional block, the block will be immediately exited.
Hide Dialog
This command is used to remove a non-modal dialog from the screen. The dialog will have been previously shown using the Display Dialog command. It does not have any configurable options and will simply remove the last non-modal dialog displayed on-screen.
Hide Dialog is generally used to remove a progress dialog from the screen before showing a finish dialog after a completed installation.
Printed Documentation
72
If
This command is used to direct program flow conditionally after performing an evaluation. It is used in conjunction with the Else If, Else, and End commands.
Variable
Type the name of the variable, according to the value of which the conditional evaluation will be performed.
Comparison
Choose a comparison type from the drop down menu. If both variables contain integer values, a numeric comparison will be performed. If at least one variable contains a non-integer value, a string comparison will be performed.
Reverse Comparison
Check this checkbox if you wish to execute an if not evaluation.
Compare With
Type the name of the second variable for comparison. You may also use a string literal in this field instead of a variable.
Install Assembly
This command installs a .NET assembly and registers it on the target system.
Source Assembly
Enter the full path to the assembly to install.
Install into the Global Assembly Cache
Check this box to install the assembly into the GAC.
Install into Custom Path
Check this box to install the assembly into a location outside the GAC. The assembly will still be registered on the target system.
InstallAWARE Help Library
73
Install Files
This command is used to install files on the target system.
Source Path
Provide the full path to the files to install. These files must exist on your development system and no variables are allowed in this field. Only a string literal may be used here. Wildcards are allowed. This field will be resolved at compile time to the actual files found on your system by the compiler. Check the Include subfolders if wildcards used checkbox to perform a recursive operation.
Target Path
Provide the full path to install the files on the target system. If this field is left emtpy, the TARGETDIR variable is assumed.
Set Attributes
Check each of the file attributes you wish to set on the files after they have been installed on the target system.
File Properties
Check the relevant file properties for the files you are installing.
Copy Options
Check all the desired file copying and removal safeguides.
Notes
• For accurate disk space requirements, please see the comments following the Get Component State command.
• Windows Installer's default behavior is to overwrite files on the target system if the ones you are copying are newer.
• If you checked File is Self Registering DLL, remember that all files that the Install Files command pertains to must be self registering. If a self registration error occurs, Windows Installer will roll back the entire installation as part of its resiliency mechanism.
• If files you are installing require to be self registered in a particular order, do not check the File is Self Registering DLL option. Windows Installer
Printed Documentation
74
does not allow the self registration order of files to be specified. Instead, use the Register Library command to manually self register those files.
• If you checked File is Vital for Installation, setup will not succeed unless the files in question are selected for installation.
Install ODBC Driver
This command installs an ODBC data provider.
Driver Name
Enter the name of the data provider here. If you wish to duplicate the settings of a driver already installed on your system, click the drop-down arrow and choose the driver to capture.
Driver DLL
Choose the driver DLL file. If the driver requires other files as well, install them normally using the Install Files command.
Setup DLL
Choose the driver setup DLL file.
Target Path
Enter the folder on the target system where the driver should be installed.
Attributes
Specify your data provider attributes here. You may enter multiple attributes by pressing CTRL+ENTER.
Languages
Enter the numeric language identifiers for the data provider here. For instance, the identifier for English (US) is 1033. Leave this field empty if the driver is language neutral.
Install Service
InstallAWARE Help Library
75
This command installs a service.
Service File
Choose the service entry point file. If the service requires other files as well, install them normally using the Install Files command.
Target Path
Enter the folder on the target system where the service should be installed.
Languages
Enter the numeric language identifiers for the service here. For instance, the identifier for English (US) is 1033. Leave this field empty if the driver is language neutral.
Service Name
Enter the name of the service, as it will be identified to the system. You may also use this name with the Control Service command.
Display Name
Enter the display name for the service, as it will appear in the Services Control Panel Application.
Service Description
Enter the ddescription for the service, as it will appear in the Services Control Panel Application.
Service Type
Choose the type of service being installed in the drop-down menu.
Service Interacts with Desktop
Check this item if the service interacts with the user. Uncheck it if the service does not interact with the user.
Load Order Group
If you wish to define the service as part of a load order group, enter the name of that group here.
Dependencies on Services and Load Order Groups
Printed Documentation
76
If the service requires that other services must have already been started before it can execute, specify the names of those services in this field:
• To specify a service name, enter the name of the service. • To specify a load order group, consisting of multiple services, enter the
name of the load order group prefixed with the + character. • If you need to specify dependencies on multiple services and/or load order
groups, seperate each name with the ~ character.
Service Startup
Choose how the service should start when the system is being started using the drop-down menu.
Startup Error Handling
Choose how errors occuring during an attempted service startup as part of a system start should be handled using the drop-down menu.
Account Name
If the service should run in the context of a particular user account, enter the name of that account here.
Account Password
If the service should run in the context of a particular user account, enter the password for that user account here.
Command Line Arguments
If there are any command line arguments to pass to the service, enter those arguments here.
Is MSI Setup Installed
This command checks whether a Windows Installer setup is presently installed on the system.
Product Code (Guid)
Enter the product code for the Windows Installer setup to check for in this field.
InstallAWARE Help Library
77
Variable
This variable returns TRUE if the indicated setup is installed. Otherwise, the variable holds FALSE.
Notes
• The NEEDSUPGRADE pre-defined variable automatically indicates whether a previous version of the running setup has been found on the system.
• Existing installations may be removed using the (Un)Install MSI Setup command.
Label
This command defines a label that program execution can be directed to using the GoTo Label command.
Edit Label
Type the name of the label as you will exactly use in the GoTo Label command.
Notes
• You may not place a label inside an if/else if/else/end block.
Mathematics
This command performs a numerical calculation.
Operand 1
Enter the first operand here. If a variable is used, be sure it represents an integer.
Operand 2
Enter the second operand here. If a variable is used, be sure it represents an integer.
Operation
Choose the type of arithmetic to perform.
Printed Documentation
78
Return Result in Variable
Type the variable that should hold the outcome of the operation.
Notes
• If an illegal operation is attempted, such as division by zero or string arithmetic, the result variable will hold an empty string.
MessageBox
This command displays a message box to the user. The message box may contain useful information and also prompt the user for a decision.
Title
Indicates the title of the message box.
Message
Type the message to display here. You may type a message that spans multiple lines by pressing CTRL+ENTER.
Icon
Choose an icon for your message box.
Buttons
Select which buttons should be available on the message box.
Return Result in Variable
If you wish to know which message box button the user pressed, provide the variable to hold that information here. The variable will hold the exact text of the message box button pressed, all in uppercase, as specified in the Buttons field.
Read from Text File
This command helps you read a single line of text from a text file.
InstallAWARE Help Library
79
Read from File
Enter the full path of the file on the target system to read from.
Into Variable
Enter the variable that will receive the text read.
Return EOF Check in Variable
Provides a way to determine if the end of file has been reached. The variable specified here will contain TRUE if the file end has been reached, and FALSE if not.
Notes
• The variable specified in the Into Variable field will only be written to if the text file exists and can be successfully read from. An empty string in this variable, if it was not previously empty, will indicate that the source text file contained an empty line.
• If the file is being read from for the first time, it will be automatically opened. Any previously opened file will be automatically closed.
• If the file is being read from is already open, the read will continue from the last file position.
• If the end of file has been reached, or at the end of the installation, the file will be automatically closed.
Read Registry
This command reads data from a key in the system registry.
Variable
Type the name of the variable to receive the read value.
Root
Select the root of the read operation using the drop down menu.
Key
Type the name of the key to read from.
Value
Printed Documentation
80
Type the value to read. Leave empty to read the default value.
Notes
• If the key/value to read from does not exist, or cannot be opened, the variable will hold an empty string.
Reboot and Resume
This command will reboot the target system, after safely exiting the installation. It will then restart the installation from the beginning. It does not have any configurable parameters.
This command is ideal for use during pre-requisite installation.
Reboot Computer
This command will reboot the target system, after safely exiting the installation. It does not have any configurable parameters.
Register Library
This command registers or unregisters a library (DLL/OCX/EXE/TLB).
Library
Full path to the library to register or unregister.
Operation
Choose whether to register or unregister the library.
Return Result in Variable
If you wish to know the result of the (un)registration operation, enter a variable name here. If the (un)registration succeeds, the variable will be set to TRUE, otherwise FALSE.
InstallAWARE Help Library
81
Notes
• Windows Installer does not permit the self registration of executable files or type libraries. You may use this command to self register executables or type libraries.
• Windows Installer does not permit specifying the order of self registration. If the libraries you are installing are inter-dependent and require to be registered in a particular order, do not register them through Windows Installer (do not check the File is Self Registering DLL option in the Install Files command). Use this command instead.
• Files you self register with this command during an installation must be explicitly unregistered when they are being removed (such as deselection during an installation maintenance operation or a complete uninstallation).
Run Program
The Run Program command enables you to execute a program on the target system, optionally wait for its completion, and obtain execution result (provided, of course, the program sets a return value).
Run Program
Type the full path to the executable that is to be run.
Hide Program Window
If you wish to hide the window of the executable, check this checkbox.
Command Line
If you will be using any command line parameters, enter them in this field.
Wait For Program to Finish
If you wish to pause the installation script until the indicated program completes executing, check this checkbox.
Return Result in Variable
If the program you are running sets a return value, you may capture it inside a variable by providing the name of the variable in this field.
Notes
• Some programs may have difficulty with long path names used in their command lines. It may be best to use the Convert Path command on such paths before executing the program.
Printed Documentation
82
Set Component State
This command sets the selection state of a component previously defined by the Define Component command.
Component Name
Type the name of the component here, including its full path as originally used in the Define Component command.
Component is Selected
Check this checkbox to set component state to selected, uncheck it to set the state to unselected.
Notes
• Wizard generated installations deselect each defined component, other than the first one, when doing a minimum setup.
Set Variable
The Set Variable command declares a variable, and initializes it to a particular value. If the variable was previously declared, it takes on the new value specified by the command. Variables must be defined before they can be used in If commands, dialog boxes, or plug-in actions.
Set Variable
Type the name of the variable to define or re-initialize.
To Value
Type the value for the variable. Leave the field empty to set the variable equal to an empty string.
Terminate Install
InstallAWARE Help Library
83
This command performs an orderly shutdown of the installation. The installation will immediately exit and clean up after itself. It has no configurable parameters.
Terminate Program
This command attempts a safe shutdown of a running application. It does not force the application to close, however it attempts to dismiss any open dialogs the application may have running and sends a close request to the main application window.
Program Window Title Contains
Enter text that the program window caption is expected to contain. The text is case sensitive. The text does not have to contain the exact caption of the window, only a portion of it.
Window Class Name
If you wish to narrow the matching list of windows containing the text entered above by specifying a window class, enter it here.
Notes
• Fill in at least one of the fields as required. • While specifying a window class will enhance precision, it is generally not required.
Web Media Block
This command is directive for the compiler, and is not constrained by conditional execution blocks. It has meaning only when used with Web builds and has no effect on Uncompressed or Compressed build types.
The Web Media Block command indicates that each installation command which installs files on the target system should place those files in the named source media block. Multiple media blocks may be defined and re-defined in any order. Each media block is effective until a subsequent media block is encountered. At least one media block must be defined before a Web build is be compiled.
Web Media Block Name
The name of the web media block. Must not exceed 8 characters and should follow the traditional short file naming convention. When the installation is built, each file
Printed Documentation
84
belonging to this media block will be placed inside an archive called <web media block name>.7zip.
Download URL
Specify the full HTTP download URL where the media block can be downloaded from at install time. The file <web media block name>.7zip should be uploaded and available immediately at this exact location for download.
Skip on Build
If files in your media block have not changed since the last time you built this setup, check this box to skip rebuilding this media block. Since media blocks are highly compressed, generating them takes time. This will save you time when you are testing and rebuilding your setup, and the media block in question has not been effected.
Notes
• If you specify an empty string in the Web Media Block Name field, an OFFLINE CONTENT block will be defined instead. This block will not be converted into a downloadable web media block, but instead packaged with the main setup executable itself. Use this option to include files which you will always install in your main setup program.
• Splice your entire setup into as many media blocks as required. You may use any combination and number of web and offline blocks to achieve your desired effect. We recommend you install your essential application files in an offline block, and place all of your runtime component updates and optional application features each in their own media blocks.
• Wizard generated projects contain an offline block for Feature Independent files, a seperate web block for each defined application feature, and again a seperate web block for each component update to be installed.
Wizard Loop
The Wizard Loop command provides a convenient way to author a setup wizard. A setup wizard is composed of multiple dialogs shown one after another sequentially, also allowing for backward traversal, and optional skipping of some dialogs based on user selections and installation requirements.
This command starts a wizard loop and has no configurable parameters. The wizard loop may only contain Display Dialog commands inside it and must be closed with an End command.
InstallAWARE Help Library
85
Write Registry
The Write Registry command records information to the system registry.
Root
Pick the root of the registry where the keys and values should be written to.
Key
Type the full key path.
Value
Type the value name to record. Leave empty to set the default value, which is always a string.
Data
Provide the actual data that will be recorded. Check Write as String to record the value as a string. Check Write as Integer to record the value as an integer.
Write to Text File
This command enables you to output a single line of text to a text file. This command does NOT execute through Windows Installer and is provided as a convenience to the setup author. Use the Edit INI File command to write to a text file through Windows Installer.
Write to File
Indicates the full path of the file on the target system to write to.
Value
Indicates the value to write. Check Write to Start of File to insert the value at the beginning of the text file. Check Write to End of File to append the value at the end of the text file.
Notes
• If the file being to written to does not already exist, it will be created. • The file will be opened for writing, written to, and then closed immediately after the write.
Printed Documentation
86
Plug-In Commands
(Un)Install MSI Package
This plug-in provided command installs, re-installs, or uninstalls a Windows Installer setup. A full Windows Installer setup command line may be specified. The progress of the Windows Installer setup will be captured and displayed as part of the installation progress.
Action String
The action string designates whether the Windows Installer setup will be installed, re-installed, or uninstalled. Custom action strings may also be used, for instance to change the installed feature set of an application.
Enter any legal Windows Installer command line parameter here. Click one of the Install, Re-Install or Uninstall buttons to automatically generate a standard command line parameter.
Use Package Guid
Check this field and enter the package guid of the Windows Installer setup to operate on. The package guid option is most useful when you intend to uninstall an already installed Windows Installer setup, and do not wish to include the MSI file for the setup.
Use Package File
Check this field and enter the full path to the Windows Installer setup database file to operate on. The package file option is most useful when you intend to install a Windows Installer setup, and will be distributing the MSI file with your own setup.
Package is InstallAware generated installation
Check this field if the command will be used to operate on an InstallAware setup. This command will fail on InstallAware setups unless this field is checked. Checking this field for non-InstallAware setups is not recommended.
Log File
If you wish to log the result of the (un)installation, enter the full path to the log file to use here.
Return Result in Variable
InstallAWARE Help Library
87
This variable, if previously defined, will hold one of the following values based on the result of the (un)install operation:
Value Meaning
SUCCESS Installation was completed successfully.
ERROR An error occured during installation.
REBOOT Installation was completed successfully, however a reboot is required.
Return Last Error in Variable
If an error occured during installation, this variable, were it previously defined, will hold a textual description of that error.
Notes
• Think of this command as a shell to Windows Installer. • If you wish to install a Windows Installer setup as part of your application:
1. Add the MSI database of the setup to your project as a support file. 2. Use this command with the Use Package File option, and specify
the path to the MSI database using the form $SUPPORTDIR$\<setup database>.msi.
• If you wish to uninstall a previous version of your own application using this command:
1. Check if a previous version of your application exists on the system using the NEEDSUPGRADE variable.
2. Use this command with the Use Package Guid option, and specify $PRODUCTCODE$ as the package guid.
.NET Framework
This plug-in provided command checks for or installs the Microsoft .NET Framework on the target system.
Check for Framework
Check this checkbox to check for the presence of the framework, and not install it.
Printed Documentation
88
Install Framework version
Check this checkbox to install the framework if it is not already present.
.NET 1.0
If this checkbox is checked, version 1.0 of the framework will be check for/installed.
.NET 1.1
If this checkbox is checked, version 1.1 of the framework will be check for/installed.
Return result in variable
If you specify a previously defined variable in this field, it will hold framework information as follows:
• TRUE: Framework check requested. Requested version of framework is available.
• FALSE: Framework check requested. Requested version of framework is NOT available.
• SUCCESS: Framework install requested. Framework was installed successfully, or was already available. No reboot is required.
• ERROR: Framework install requested. Framework was not installed successfully, a reboot is pending or system does not meet minimum requirements.
Notes
• Wizard generated installations contain example of logic for proper detection and installation of runtime components.
Call DLL Function
This plug-in provided command calls a function exported from a DLL. The function must be available under the specified function name and use the __stdcall calling convention.
DLL Path
The full path to the DLL file that exports the function. If a full path is not specified, the DLL will be loaded using the same guidelines that the LoadLibrary API call uses.
Function Name
InstallAWARE Help Library
89
The name of the function to call that the DLL exports. If the function with the indicated name is not exported from the DLL, the plug-in will make a second attempt to load a function exported with an "A" character appended to the function name.
Parameter Type
Indicates the type of the parameter being passed to the function.
Parameter Value
Indicates the value of the parameter being passed to the function. If a variable is provided in this field, and the parameter is being passed to the function by reference, the passed variable will contain the new value of the parameter. If a variable is not provided, even if the parameter is being passed by reference, the new value of the parameter will not be obtained.
Return Type
Indicates the return type of the function.
Return result in variable
Indicates the variable to hold the result of the function call. If the function call succeeds and the function has a void return parameter, this field is empty. If the function call succeeds and the function has a non-void return parameter, this field is set to the return value of the function. If the function call fails, the variable will hold one of the following values:
Value Meaning
DLLLOADFAILED The DLL could not be loaded. It may not exist at the given path or one or more of its dependencies may be missing.
FUNCTIONNOTFOUND A function with the given name, or the given name appended with an "A", is not exported from the DLL.
EXTERNALEXCEPTION An exception occured while executing the function code in the DLL.
Notes
• You may use the Call DLL Function command to call virtually any Windows API function.
Printed Documentation
90
DirectX Runtime
This plug-in provided command checks for or installs the DirectX Runtime on the target system.
Check for runtime version at least 8.1
Check this checkbox to check for the presence of the most commonly required version of the runtime.
Check for runtime version at least 9b
Check this checkbox to check for the presence of the latest available version of the runtime
Get available version
Check this checkbox to obtain the exact version of the runtime.
Install Runtime version 9b
Check this checkbox to install version 9b of the runtime.
Return result in variable
If you specify a previously defined variable in this field, it will hold runtime information as follows:
• <version>: Runtime version check requested. Variable receives the full DirectX version string from the system registry. The version string for version 9b of the runtime is 4.09.00.0902. The version string for version 8.1 of the runtime is 4.08.01.0810.
• TRUE: Runtime check requested. Requested version of runtime is available.
• FALSE: Runtime check requested. Requested version of runtime is NOT available.
• SUCCESS: Runtime was installed successfully, or was already available. No reboot is required.
• REBOOT: Runtime was installed successfully. However, a reboot IS required.
• ERROR: Runtime was not installed successfully, system does not meet minimum requirements.
InstallAWARE Help Library
91
Notes
• Wizard generated installations contain example of logic for proper detection and installation of runtime components.
Download File
This plug-in provided command downloads any file from the Internet.
URL
Enter the full HTTP URL to the file that should be downloaded.
Local file path and name
Enter the full path for the local copy of the file on the target system. If file already exists, and the Allow resume broken downloads checkbox is checked, it will be assumed to be a previously broken download and the Download File command will attempt to resume the download from where it left off.
Return result in variable
If you wish to receive information on whether the file was successfully downloaded, enter the variable to hold success information here. Possible values are:
• SUCCESS: File was downloaded successfully. • ERROR: File was not downloaded successfully. Check Internet
connectivity.
Proxy Server
If you wish to redirect the download through a proxy server, provide that information here.
Proxy Port
If the proxy server requires port information, enter that here.
Allow resume broken downloads
Check this checkbox to permit continuation of broken downloads. Uncheck it to always download files from the beginning.
Printed Documentation
92
Notes
• Since downloads can take some amount of time, it is recommended you use the Display Dialog command to show a progress dialog while your download is taking place.
Internet Explorer 6 (SP1)
This plug-in provided command installs or re-installs Internet Explorer 6 Service Pack 1.
Install Internet Explorer 6 (SP1)
Choose whether to perform a complete, standard, or minimal installation of Internet Explorer using the drop-down menu.
Shell Integration
Choose whether you wish to:
• Make Internet Explorer the default browser, and create all shell shortcuts • Create the shell shortcuts only • Just install the Internet Explorer browser control, and do not create any
shortcuts (useful if your application requires the browser control)
Return result in variable
If you indicate a previously defined variable in this field, it will hold one of the following values, based on the outcome of the attempted installation:
• REBOOT: Installation completed successfuly, system must be restarted for changes to apply
• ERROR: Installation failed
Notes
• This command does not check whether a current or newer version of Internet Explorer already exists on the system. It will re-install Internet Explorer even if it has already been installed.
• Use the Get System Settings command to check for an existing version of Internet Explorer.
InstallAWARE Help Library
93
JSharp Runtime
This plug-in provided command checks for or installs the Microsoft JSharp Runtime version 1.1 on the target system.
Check for Runtime
Check this checkbox to check for the presence of the runtime, and not install it.
Install Runtime
Check this checkbox to install the runtime if it is not already present.
Return result in variable
If you specify a previously defined variable in this field, it will hold framework information as follows:
• TRUE: Runtime check requested. Requested version of runtime is available.
• FALSE: Runtime check requested. Requested version of runtime is NOT available.
• SUCCESS: Runtime install requested. Runtime was installed successfully, or was already available. No reboot is required.
• ERROR: Runtime install requested. Runtime was not installed successfully, a reboot is pending or system does not meet minimum requirements.
Notes
• Wizard generated installations contain example of logic for proper detection and installation of runtime components.
MDAC Refresh
This plug-in provided command checks for or installs the MDAC Refresh on the target system. This runtime installation contains the following components: ADO, ODBC, OLE DB, and JET.
Check for at least version 2.8
Check this checkbox to check for the presence of the latest available version of the refresh.
Printed Documentation
94
Get available version
Check this checkbox to obtain the exact version of the runtime.
Install version 2.8
Check this checkbox to install version 2.8 of the refresh.
Return result in variable
If you specify a previously defined variable in this field, it will hold runtime information as follows:
• <version>: Refresh version check requested. Variable receives the full MDAC version string as reported by the system. The version string for version 2.8 of the refresh is 2.8.
• TRUE: Refresh check requested. Requested version of refresh is available.
• FALSE: Refresh check requested. Requested version of refresh is NOT available.
• SUCCESS: Refresh was installed successfully, or was already available. No reboot is required.
• REBOOT: Refresh was installed successfully. However, a reboot IS required.
• ERROR: Refresh was not installed successfully, system does not meet minimum requirements.
• CANCEL: Refresh was not installed successfully, operation aborted by user.
• DISKFULL: Refresh was not installed successfully, destination drive lacks sufficient free space.
Notes
• Wizard generated installations contain example of logic for proper detection and installation of runtime components.
MSXML 4 SP2
This plug-in provided command checks for or installs Microsoft XML 4.0 Service Pack 2.0 onto the system.
Check for MSXML 4.0 SP2
InstallAWARE Help Library
95
Check this checkbox to check for the presence of the module, and not install it.
Install MSXML 4.0 SP2
Check this checkbox to install the module if it is not already present.
Return result in variable
If you specify a previously defined variable in this field, it will hold framework information as follows:
• TRUE: Module check requested. Requested version of module is available.
• FALSE: Module check requested. Requested version of module is NOT available.
• SUCCESS: Module install requested. Module was installed successfully, or was already available. No reboot is required.
• ERROR: Module install requested. Module was not installed successfully, an error occured or system does not meet minimum requirements.
• REBOOT: Module install requested. Module was installed successfully, and a reboot is pending.
Visual Basic VM
This plug-in provided command checks for or installs the Visual Basic 6 Virtual Machine (Service Pack 6) on the target system.
Check for Runtime version SP5
Check this checkbox to check for the presence of the most commonly required version of the runtime.
Check for Runtime version SP6
Check this checkbox to check for the presence of the latest available version of the runtime
Install Runtime
Check this checkbox to install the runtime.
Return result in variable
Printed Documentation
96
If you specify a previously defined variable in this field, it will hold runtime information as follows:
• <version>: Runtime version check requested. Variable receives the full virtual machine version string from the virtual machine DLL file. The version string for SP6 of the runtime is 6.0.97.82. The version string for SP5 of the runtime is 6.0.89.64.
• TRUE: Runtime check requested. Requested version of runtime is available.
• FALSE: Runtime check requested. Requested version of runtime is NOT available.
• SUCCESS: Runtime was installed successfully, or was already available. No reboot is required.
• REBOOT: Runtime was installed successfully. However, a reboot IS required.
Notes
• Wizard generated installations contain example of logic for proper detection and installation of runtime components.
Visual C++ Runtime
This plug-in provided command checks for or installs the Visual C++ 6 (Service Pack 6) runtime on the target system. This runtime installation contains the following components: MFC, ATL, and language DLLs.
Check for Runtime
Check this checkbox to check for the presence of the runtime, and not install it.
Install Runtime
Check this checkbox to install the runtime if it is not already present.
Return result in variable
If you specify a previously defined variable in this field, it will hold framework information as follows:
• TRUE: Runtime check requested. Requested version of runtime is available.
InstallAWARE Help Library
97
• FALSE: Runtime check requested. Requested version of runtime is NOT available.
• SUCCESS: Runtime install requested. Runtime was installed successfully, or was already available. No reboot is required.
• ERROR: Runtime install requested. Runtime was not installed successfully, a reboot is pending or system does not meet minimum requirements.
Notes
• Wizard generated installations contain example of logic for proper detection and installation of runtime components.
Windows Installer
This plug-in provided command checks for or installs the Windows Installer runtime version 1.1 on the target system.
Check for Runtime version 2.0
Check this checkbox to check for the presence of the runtime, and not install it.
Install Runtime version 2.0
Check this checkbox to install the runtime if it is not already present.
Return result in variable
If you specify a previously defined variable in this field, it will hold framework information as follows:
• TRUE: Runtime check requested. Requested version of runtime is available.
• FALSE: Runtime check requested. Requested version of runtime is NOT available.
• SUCCESS: Runtime install requested. Runtime was installed successfully, or was already available. No reboot is required.
• ERROR: Runtime install requested. Runtime was not installed successfully, a reboot is pending or system does not meet minimum requirements.
Warning
Printed Documentation
98
• Version 2.0 of the Windows Installer runtime must be installed on the target system for your application installation to succeed.
Notes
• Wizard generated installations contain example of logic for proper detection and installation of runtime components.
Windows Media Format 9
This plug-in provided command installs support for Windows Media Format version 9.
Check for format version at least 9
Check this checkbox to check for the presence of the format, and not install it.
Install format version 9
Check this checkbox to install the format if it is not already present.
Return result in variable
If you specify a previously defined variable in this field, it will hold framework information as follows:
• TRUE: Format check requested. Requested version of format is available. • FALSE: Format check requested. Requested version of format is NOT
available. • SUCCESS: Format install requested. Format was installed successfully, or
was already available. No reboot is required. • REBOOT: Format install requested. Format was installed successfully. A
reboot is required before format will be available for use. • ERROR: Format install requested. Format was not installed successfully,
a reboot is pending or system does not meet minimum requirements.
Dialog Editor
Starting the Dialog Editor
There are several ways to start the MimarSinan InstallAware User Interface Editor.
InstallAWARE Help Library
99
• Start the Dialog Editor from the Start Menu shortcut. • Press the F12 key while the InstallAware IDE is running. • Double-click or press ENTER while a dialog is selected in the Project
Manager window. This will load the selected dialog into the editor.
Once the Dialog Editor is started, if an existing dialog is not already loaded, choose File Open to load a dialog into the editor, or work with the empty dialog design.
Using the Dialog Editor
You may use the Dialog Editor to perform any of the following tasks:
• Add new controls to existing dialogs • Customize or remove existing controls on dialogs • Pass the values of dialog controls and script variables between one
another • Customize themes and graphical elements to meet your needs • Design entire themes from scratch
Once you've started the Dialog Editor, the general editing process can be summarized in the following steps:
1. If the dialog you wish to edit is not already loaded, choose File Open to load it. You may also prefer to start with an empty dialog (to do so, start the editor without any command line parameters, for instance from the Start Menu shortcut).
2. Explore the various tabs (Standard, Additional, Win32, Browser) and get a feel for the available range of dialog controls.
3. Click on the control you wish to add to the dialog. Then click on the dialog where you wish to place the control.
4. Position and size the control precisely using the grab handles. You may also use the keyboard in this process.
5. Explore and set the various properties of the control as visible in the Object Properties window.
6. Add any further controls, and modify/remove existing ones as required. 7. Define the way controls in the dialog respond to one another. For
instance, you may want to disable a Next button until the license agreement has been accepted.
8. Specify how your dialog receives information from the setup script. For instance, you may want to define which controls receive the list of available application features.
Printed Documentation
100
9. InstallAware makes it very easy to pass variables between the dialogs and the script. Associate dialog controls with variables.
10. Choose File Save to save your dialog, or File Save As to save it under a new file name.
11. Choose Tools Test Dialog to test your dialog before finalizing your changes. If you need to close the dialog while testing, press ALT+F4.
Dialog Controls
The table below summarizes available dialog controls, the tabs they are available on, and example areas for their use.
Page Control Usage
Standard Label Display static text
Standard Edit Box Obtain information from user
Standard Memo Display readme, license agreements
Standard Button Navigate between dialogs, exit setup
Standard Check Box Accept license agreement, display other choices
Standard Radio Button Accept license agreement, display mutually exclusive choices
Standard List Box Display list of items
Standard Combo Box Display drop-down list of items
Standard Group Box Define a group, use for isolating radio buttons
Standard Panel Add a panel or bevel
Additional Bitmap Button A button with a bitmap
Additional Speed Button A button with a bitmap and no text
Additional Masked Edit Edit box with masked characters, useful for passwords
InstallAWARE Help Library
101
Additional Picture Any bitmap or icon, clickable
Additional Shape A geometric shape in any color
Additional Bevel Bevel useful for defining dialog regions
Additional Static Text Display textual progress, clickable links
Win32 Rich Text Display RTF files, license agreements, readme information
Win32 Track Bar Allow user to select a numeric range
Win32 Progress Bar Display installation progress
Win32 Up Down Button Single step increment and decrement
Win32 Animation Display built in Windows animation, or custom AVI file
Win32 Check-List Box Useful for displaying a selectable, flat list of setup features
Win32 Tree View Useful for displaying multiple hierarchies of nested setup features
Browser HTML View Display interactive html or billboards during installation progress
Browser File List Box For file selection
Browser Directory List Box
For folder selection
Browser Drive Combo Box
For drive selection
Browser Filter Combo Box
To constrain file types shown on the file list box
Browser Shell Tree View For Explorer style folder selection
Browser Shell List View For Explorer style file selection
Browser Shell Combo Box
For Explorer style folder selection
Printed Documentation
102
Intra-Dialog Relations
While working on dialogs, you will realize you need to constrain the behavior of controls shown on the dialogs. A step-by-step procedure is provided below for defining relations between your dialogs.
1. Make sure the dialog contains the controls that are expected to interact with one another.
2. Double-click one of the controls. The Define Interactive Characteristics dialog appears. Select the Object Rules tab on this dialog.
3. If you have any existing relations previously defined, they show under the Existing Rules pane. You may highlight rules and move their processing order up or down, or delete the rules altogether. Keep in mind that rules will be processed at runtime following a top-down order.
4. In the When Control drop down menu, select the control whose state will effect the other control. Controls are listed on this drop down menu by their Name property accessible from the Object Properties window.
5. Choose the property you wish to check for in the Has Property drop down menu.
6. Enter the property value in the Equal To field as a string. You may also check not if you wish to test for the exclusion of this property.
7. In the Change Control drop down menu, choose the target control. 8. Pick the Property Value to modify from the drop down menu. 9. Enter the new value into the To New Value field as a string. 10. Click the Add button to add your new rule to the list of existing rules. Click
Replace instead to replace the currently highlighted rule in the Existing Rules pane with the new rule.
11. If you later wish to customize an existing rule, simply click that rule in the Existing Rules pane. All fields in the rule editor will be automatically populated. You can update your rule and click Replace to store your changes.
12. Be sure to click Close on the dialog to finalize your changes, and save your dialog in the main editor.
Notes
• To see example dialog relations in action, open any license agreement dialog.
• Test the behavior you defined in the main editor by choosing Tools Test Dialog.
InstallAWARE Help Library
103
Dialog Behavior
In addition to defining relationships between dialog controls themselves, you will also want to connect dialog controls with the installation itself, so that the dialog will receive and display information about the running setup, such as progress information. The procedure for setting up these connections is described below.
1. Make sure the dialog contains the controls that you wish to display script information in.
2. Double-click one of the controls. The Define Interactive Characteristics dialog appears. Select the Object Behavior tab on this dialog.
3. In the Control drop down menu, select the control that will receive setup information. Controls are listed on this drop down menu by their Name property accessible from the Object Properties window.
4. Depending on the kind of control selected, the fields Receives Information, Writes Values to Variable, and Performs Action will disable or enable.
5. Interact with the enabled fields to define the setup information that the control will reflect.
6. Be sure to click Close on the dialog to finalize your changes, and save your dialog in the main editor.
Notes
• To see example dialog behaviors in action, open any pre-defined setup dialog. Each dialog will have some behaviors defined.
• Test the behavior you defined in the main editor by choosing Tools Test Dialog.
Passing Variables
MimarSinan InstallAware makes it very easy to connect variables used in the setup script to dialog elements. This makes extracting information the user entered into the setup dialogs a trivial task.
Passing Values from Dialogs to the Script
1. Make sure the dialog contains the control that you wish to extract information from.
Printed Documentation
104
2. Double-click the desired control. The Define Interactive Characteristics dialog appears. Select the Object Behavior tab on this dialog.
3. In the Control drop down menu, confirm the desired control is selected. Controls are listed on this drop down menu by their Name property accessible from the Object Properties window.
4. If the control contains any meaningful information that can be passed back to the script, the Writes Values to Variable field will enable.
5. Type in the Write Values to Variable field the name of the script variable that you wish to hold control information. This variable must already be defined in your setup script.
6. Be sure to click Close on the dialog to finalize your changes, and save your dialog in the main editor.
An example dialog box illustrating this concept is the setup type dialog.
Passing Values from the Script to Dialogs
While under most circumstances the above procedure will establish a two-way link between the control and the script variable in question, you may want to explicitly obtain the value of a variable, and assign it to a dialog control as a property. You may then use this property in controlling the state of other dialog controls.
1. Add a label to the dialog. Give the label a descriptive name. 2. Set the visible property of the label to FALSE using the Object Properties
window. Since this control is only used internally, we do no want the end user to see it.
3. Set the caption property of the label to the dereferenced variable. For instance, if the script variable you wish to capture is called MYVAR, set the caption to $MYVAR$.
4. Use the caption property of this label in defining intra-dialog relations.
An example dialog box illustrating this concept is the finish dialog.
Support Files
Support Files
InstallAware uses support files at several places throughout the installation. Support files are not actually installed onto the target system, but they are part of the installation package. They are available temporarily while the installation is executing and are cleaned up when the installer finishes execution. Some example support files are:
InstallAWARE Help Library
105
• License agreement and readme files • Progress dialog content • Setup splash screen
You may add custom items to support files and access these files at runtime using the SUPPORTDIR pre-defined script variable. An example support file could be a small applet you need to run as part of your installation.
Modifying Support Files
Each installation project contains support files that are used as resources during your setup. For instance, your license agreement file is a support file. Support files are compressed into the main setup executable during builds and are available while the installation is running at the folder referenced by the SUPPORTDIR variable.
To Add Support Files
Adding files such as setup splash screens, license agreements, readme files, is necessary for most setups:
1. Display the Project Manager. 2. Select the Support Files node in the tree view. 3. Right-click and choose Add Files to Project, or press INSERT. Browse to
the files you wish to add. You may select multiple files.
Remember that you may include any file as a support file, and access it while the installation is running using the SUPPORTDIR variable.
To Remove Support Files
You may wish to eliminate support files that you no longer use:
1. Display the Project Manager. 2. Select the Support Files node in the tree view. 3. Highlight each support file you would like to remove. You may select
multiple files. 4. Right-click your selection and choose Remove Files from Project, or press
DELETE.
Printed Documentation
106
Displaying a Splash Screen
To display a splash screen while the installation is initializing, simply create a .BMP file and add it to the setup. All bitmap types at all color resolutions are supported; however you may want to keep to 256 colors on your bitmap in consideration of older systems with graphics cards that cannot display higher resolutions.
1. Name the bitmap file setup.bmp. 2. Display the Project Manager. 3. Add the bitmap to the project as support files.
If you later need to remove or update the splash screen, simply modify its file as a regular support file. The Project Manager will maintain a reference to your bitmap file in your project and the bitmap file will be placed in your project folder.
Change Setup Icon
You may customize the default setup icon that is used in several places throughout your setup:
• Setup self extraction progress window • Setup self extractor program • Main setup program • Setup dialogs system menu • Taskbar program button • Add-Remove Programs applet
To customize the setup icon
1. In the Project Options dialog (SHIFT+CTRL+F11), select the Add-Remove node beneath the Project node.
2. Click the Load Icon button and choose your custom icon.
To revert to the default icon
1. Remove the file icon.ico from your list of support files.
License and ReadMe Files
InstallAWARE Help Library
107
To display license and readme files in your setup dialogs, you need to add the files to your setup project. Rich text and plain text files may be used for displaying licensing and readme information.
1. Name the license agreement file license.rtf or license.txt. 2. Name the readme file readme.rtf or readme.txt. 3. Display the Project Manager. 4. Add the files to the project as support files.
If you later need to remove or update these files, simply modify them as regular support files. The Project Manager will maintain a reference to these files in your project and the files will be accessible in your project folder.
Using Interactive Progress Flash
You may use interactive Flash movies as part of your installation dialogs, and in particular inside a progress dialog, to educate and entertain your users while your product is installing. Flash movies provide an unprecedented rich medium for use as installation billboards, with no limits on your creativity.
Adding a Flash Control to a Dialog
In order to display interactive Flash movies in your dialogs, you first need to add a Flash control to your dialogs.
1. Open the dialog in the Dialog Editor. 2. Choose the Browser tab on the component palette. 3. Select and add the FlashFrame control to your dialog. 4. Double-click the new control to bring up the Define Interactive
Characteristics window. 5. Choose the Object Behavior tab, and under the Receives Information
drop-down, select Installation Billboards.
Adding a Flash Movie to a Setup
After adding the Flash control to your setup dialogs, you will want to add the movie itself.
1. Set the file name of the Flash movie to add as movie.swf. 2. Display the Project Manager. 3. Add the SWF file as a support file.
Printed Documentation
108
If you later need to remove or update your movie, simply modify it as a regular support file. The Project Manager will maintain a reference to this file in your project and the file itself will be accessible in your project folder.
Flash Runtime Deployment
To display Flash movies, the player runtime needs to be present on the end-user system. The moment a dialog containing the FlashFrame control is shown, InstallAware will automatically attempt to install the player runtime if it is not already available. If the installation fails, the dialog will not render the movie, but no setup error will occur - your installation will continue normally.
The runtime file that is used in this automated installation process is automatically added to your project as a support file under the name flash.ocx. This addition occurs moment you add a movie to your setup. You may replace the default runtime file with a newer/older version of the runtime. To do so, simply add the desired version of the runtime file as a support file under the name flash.ocx to your project. You may also delete the runtime file from the list of support files, however in this case if the end-user system lacks the runtime, none of your movies will render (although the setup itself will not be affected).
Using Interactive Progress HTML
If you were impressed by the interactive HTML content available on the InstallAware progress dialog, you will be pleased to know that you may include the same feature in your own setups. You just need to create your HTML content and the files to your project.
1. Name the entry point for your progress HTML index.htm. 2. Create any additional HTML files. The files may reference one another,
and include links to graphics. 3. Make sure none of the links on any of the pages has path specifiers -
everything should work in a flat directory structure. 4. Display the Project Manager. 5. Add all the HTML files and required support files (such as .GIF and .JPEG
files) to the project as support files.
If you later need to remove or update these files, simply modify them as regular support files. The Project Manager will maintain a reference to these files in your project and the files will be accessible in your project folder.
The native HTML viewer on the progress dialog does not require any runtime controls (such as the Internet Explorer control), offering maximum freedom and compatibility
InstallAWARE Help Library
109
with all existing Windows versions. The viewer is also capable of parsing most HTML tags, supports page backgrounds, animated GIFs, page refreshes, external links to websites, and more.
Using Static Progress Billboards
While interactive HTML content is available on the InstallAware progress dialog, you may choose to take a more traditional route and instead display static billboards.
1. Author an HTML file for each billboard to display: o Name the first file index.htm, o Add a META REFRESH tag to each HTML file, pointing it to the
next file, o Display a billboard graphic (and other relevant information) in each
HTML file. 2. Make sure none of the links on any of the pages has path specifiers -
everything should work in a flat directory structure. 3. Display the Project Manager. 4. Add all the HTML files and required support files (such as .GIF and .JPEG
files) to the project as support files.
If you later need to remove or update these files, simply modify them as regular support files. The Project Manager will maintain a reference to these files in your project and the files will be accessible in your project folder.
The native HTML viewer on the progress dialog does not require any runtime controls (such as the Internet Explorer control), offering maximum freedom and compatibility with all existing Windows versions. The viewer is also capable of parsing most HTML tags, supports page backgrounds, animated GIFs, page refreshes, external links to websites, and more.
The Localization Process
MimarSinan InstallAware contains all the tools and resources necessary for you to localize your setups. The process of localizing your setup is described in the following steps:
1. In the Project Options dialog (SHIFT+CTRL+F11), select the Project node and choose the desired target language under the Language drop down menu.
Printed Documentation
110
2. Edit your installation script in the script editor, and localize all strings used in your script.
3. Edit your installation dialogs, and localize all strings used in the installation dialogs.
4. Open the Translator utility (choose Tools Start Translator) and localize all strings falling under your target language.
5. Rebuild your setup, and deploy.
Building from the Command Line
MimarSinan InstallAware includes a command line build utility which you may use in batch files, automated build processes, or just plain from the command line. The utility is invoked as follows:
miabuild.exe <projectfile> [/o=<outputfolder>] [/b=<buildtype>] [COMPILERVAR1=VALUE1 ... COMPILERVARN=VALUEN] <projectfile> Full/partial path to the .MPR project file <outputfolder> Optional parameter, full/partial path to custom build output folder <buildtype> Optional parameter, build type 0: Uncompressed directory layout 1: Compressed Single Self Installing EXE 2: Compressed Web-Based EXE [COMPILERVARN=VALUEN] Optional parameter, compiler variable-value pairs for conditional compilation
The command line build utility returns the following codes to indicate success/failure:
• 0: Build completed successfully • 1: Error during build, or user cancelled build • 2: Invalid command line parameters
InstallAWARE Help Library
111
• 3: Unhandled fatal exception during build
Setup Command Line Parameters
Every InstallAware setup supports command line parameters for silent and logged installs. In addition, you may also set/override the values of variables used in your installation from the command line.
You may freely combine all of the parameters displayed below. See uninstalling from the command line for an example.
Silent Installs
With the silent install command line parameter set, the entire installation will execute silently, without a user interface, or any user intervention. When input is required on dialog boxes, the default values of dialog controls will be used.
<setup.exe> /s
In the above example, setup.exe denotes the main setup executable.
Logged Installs
If the logging command line parameter is set, the installation will keep a verbose log of all the internal installation variables, as well as Windows Installer's own installation log.
<setup.exe> /l=<logfile.ext>
In the above example, setup.exe denotes the main setup executable, and logfile.ext is the full path to the desired log file.
Setting Variable Values
To set the values of setup variables from the command line, possibly overriding their default values in the process, specify the variables and their values as follows:
<setup.exe> <VARIABLE_1>=<VALUE_1> [ ... <VARIABLE_N>=<VALUE_N>]
In the above example, setup.exe denotes the main setup executable, VARIABLE_1 is the name of a variable to set, and VALUE_1 provides the value the variable is set to receive. You may set values for an arbitrary number of variables from the command line.
Printed Documentation
112
Plug-In Development Plug-In Authoring Overview
The InstallAware IDE and setups are plug-in extensible. This document describes how to develop plug-ins for extending InstallAware installations. To jump start your plug-in development, display the New Project dialog in the InstallAware IDE (choose File New Other) and pick a plug-in template project.
Plug-In Files
A plug-in consists of two DLLs:
• Design-Time/Compile-Time DLL. Invoked from the IDE while setup is being designed, and compiled.
• Run-Time DLL. Invoked from the running setup program while product is actually being installed.
More files may be present in the plug-in folder as required by the plug-in. These files may be support files for the DLLs, or files that the plug-in makes available to the running setup.
Design-Time/Compile-Time DLL
This DLL should:
• Display user interface, allowing programmer to configure plug-in options • Participate in the build process, by copying the runtime dll, and required
support files, to the build location
This DLL may include dependencies on other libraries.
Run-Time DLL
This DLL should:
• Perform the actual plug-in task while install is running • Properly return updated state of variables to calling process • Update progress for lengthy operations with callbacks
InstallAWARE Help Library
113
This DLL must not have any runtime dependencies. It should be able to carry out its task in any operating environment, since it will be called from the setup at runtime in a production environment.
Plug-In Registration
A plug-in should create keys in the system registry, letting the InstallAware development environment know of its existence.
HKEY_LOCAL_MACHINE SOFTWARE MimarSinan InstallAware 2.0 Plug-Ins {Plug-In Name} (Default) = {Full Path to Plug-In Design-Time/Compile-Time DLL} Action = {Plug-In Name} Execute = {File Name (without path) to Plug-In Run-Time DLL} Script = {Plug-In Script Display}
Plug-In Name
The name of the plug-in. This will also be used for displaying the plug-in command on the commands list.
Plug-In Script Display
The text that will be displayed in the script editor when a plug-in command has been added into the script.
Design Time Exports
The functions which must be exported by the design time DLL and their expected behavior is described below.
CompileTimeBuild
Printed Documentation
114
This function is called when the project is being compiled. The function should copy the necessary files for its operation, modify the Windows Installer database if necessary, and indicate whether it will require access to setup files during installation.
bool WINAPI CompileTimeBuild( int MSIHandle, const char* State, const char* BuildPath, bool Build, bool& Fetch );
MSIHandle
Handle to the Windows Installer database being currently generated.
State
The state of the plug-in represented as a string. This state parameter is opaque to InstallAware. The plug-in generates and returns state information in the DesignTimeEdit function also located in this DLL.
BuildPath
The full path to the folder where the plug-in must copy its build files to. At a minimum, the plug-in should copy its Run-Time DLL to this build location. The plug-in may also copy other files as needed (for instance, if the plug-in installs any files, it should also copy those files).
Build
Indicates whether files should actually be copied.
Fetch
If the plug-in requires access to the setup media (that is, the files it copied to BuildPath, excluding the runtime DLL file) for the current value of the State parameter, the plug-in should set this variable to TRUE. Otherwise, the variable should be set to FALSE.
InstallAware uses this information to determine if a web media block should be downloaded at runtime while the plug-in is executing.
DesignTimeEdit
InstallAWARE Help Library
115
This function is called when the plug-in command is being added to the script for the first time, or an already existing command edited. The function should display a plug-in defined window enabling the user to configure plug-in settings (such as, what the plug-in does at install time). These settings will be passed back to the caller enabling their storage in a persistent medium.
int WINAPI DesignTimeEdit( int Window, const char* State, const char* NewState );
Window
Handle to parent window, the InstallAware IDE.
State
The existing state of the plug-in represented as a string. This state parameter is opaque to InstallAware. The plug-in generates and returns state information in this function.
If the command is being added to the script for the first time, this parameter will be NULL. The plug-in should initialize its user interface and reflect default plug-in settings, or display the settings previously configured by the user.
NewState
The new state of the plug-in represented as a string. This state parameter is opaque to InstallAware. The plug-in generates and returns state information in this function.
The plug-in should generate this string based on the settings configured by the user in the plug-in defined window. If NewState is not NULL, the plug-in should pass the state string back to the caller. The caller will then store this state information for later use in setup projects and running setups.
Remarks
The DesignTimeEdit function will always be called twice:
1. The first call of the function will always have the NewState parameter set to NULL. The function should display its user interface, generate the NewState string, and store it in a buffer. The function should return the length of the buffer as its result. This will enable the caller to allocate sufficient memory to hold the NewState string. If the user cancelled the operation in the plug-in user interface, the
Printed Documentation
116
function should return -1 indicating that command insertion to the script was aborted. In this case, the function will not be called again, since it is not necessary to obtain state information anymore.
2. The second call of the function will always pass a non-NULL NewState parameter, with just enough space to hold the NewState string. In this second iteration, the function should not display a user interface at all. It should instead copy to the buffer pointed to by the NewState variable the NewState string it generated and stored in the first iteration. In the second iteration, the function should always return 0.
DesignTimeText
This function returns custom plug-in text for display in the script editor. This function is optional.
int WINAPI DesignTimeText( const char* State, const char* Text );
State
The existing state of the plug-in represented as a string. This state parameter is opaque to InstallAware. The state parameter passed here has been previously generated by the plug-in in the DesignTimeEdit function.
Text
The human readable representation of the plug-in state, as will be displayed in the script editor.
Remarks
The DesignTimeText function will always be called twice:
1. The first call of the function will always have the Text parameter set to NULL. The function should parse the State parameter, generate the Text string, and store it in a buffer. The function should return the length of the buffer as its result. This will enable the caller to allocate sufficient memory to hold the Text string.
2. The second call of the function will always pass a non-NULL Text parameter, with just enough space to hold the Text string. In this second iteration, the function should not re-parse the State parameter at all. It should instead copy to the buffer pointed to by the Text variable the Text
InstallAWARE Help Library
117
string it generated and stored in the first iteration. In the second iteration, the function should always return 0.
AboutPlugIn
This function displays the plug-in about box, containing general and copyright information on the plug-in.
void WINAPI AboutPlugIn( int Window );
Window
Handle to parent window, the InstallAware IDE.
Run-Time Exports
The functions which must be exported and called by the run-time DLL, and their assumed behavior, is described below.
PlugInProgressIndicator
This is a setup executable defined callback function. The plug-in will receive the address of the callback function in the RunTimeExecute function, also located in this DLL. It should periodically call this function to keep the setup user interface updated of the overall progress of the task the plug-in is performing.
typedef BOOL (WINAPI* lpPlugProgressIndicator)( int, const char* );
Integer Parameter
This parameter should contain the numeric representation of the overall task progress, where 0 is nothing and 100 is complete.
Char* Parameter
This parameter should contain a textual description of the currently executing task.
Boolean Return
Printed Documentation
118
The callback function will return TRUE if the plug-in is permitted to continue its task. If the setup has been cancelled by the user, the callback function will return FALSE. In this case, the plug-in should immediately end its task and clean up after itself.
RunTimeExecute
This function will perform the actual plug-in task, and update script variables as necessary. It will be called at runtime by the setup executable.
int WINAPI RunTimeExecute( int Window, const char* Variables, const char* State, lpPlugProgressIndicator Progress, int& Return, char* NewVariables );
Window
Handle to parent setup window.
Variables
This parameter contains the names and values of all variables used in the setup script as a comma delimited string list of the form <variable name>,<variable value>,...,<variable name>,<variable value>. If a variable name or value contains embedded spaces, the entire value will be enclosed in double quotes.
State
The state of the plug-in represented as a string. This state parameter is opaque to InstallAware. The plug-in generates and returns state information in the DesignTimeEdit function located in the design time DLL.
In essence, this variable tells the plug-in what to do.
Progress
Pointer to the progress callback function which the function must periodically call, both updating the setup user interface, and allowing the user to abort the operation if so required.
Return
InstallAWARE Help Library
119
Reserved. Set to 0.
NewVariables
The new state of the installation variables. The plug-in should modify the script variables list received in the Variables parameter and return it in this parameter if NewVariables is not NULL. Of course, if the plug-in did not change the state of any script variable, the plug-in should instead return a copy of the original Variables parameter.
If NewVariables is NULL, the plug-in should internally store the script variables. See the remarks for more information.
Remarks
The RunTimeExecute function will always be called twice:
1. The first call of the function will always have the NewVariables parameter set to NULL. The function should perform its installation action, perpare the NewVariables string, and store it in a buffer. The function should return the length of the buffer as its result. This will enable the caller to allocate sufficient memory to hold the NewVariables string.
2. The second call of the function will always pass a non-NULL NewVariables parameter, with just enough space to hold the NewVariables string. In this second iteration, the function should not perform an installation action at all. It should instead copy to the buffer pointed to by the NewVariables variable the NewVariables string it generated and stored in the first iteration. In the second iteration, the function should always return 0.
Automation Automation Overview
InstallAware ships with an automation interface that can be used to programmatically emit and build complete setup projects. The automation interface is available as both a standard Win32 DLL, callable from any Windows application, and as a COM object, for use in ASP scripts on a web server. Use the interface that is most convenient for your project requirements.
Win32 DLL
The Win32 DLL may be used by any application which is capable of calling standard Windows DLLs. The DLL exports several functions and can perform the following tasks:
Printed Documentation
120
• Emit installation scripts • Emit project files • Build projects
Example projects using the DLL, including headers for the DLL, are located in the Automation\Examples folder inside your InstallAware installation folder.
Please see the runtime files section for information on where to locate the DLL and its dependencies.
COM Object
The COM object is ideal for scripting access to the automation interface from ASP pages on a web server. This way, you could generate a custom install dynamically from a web page, build it, and deliver it to the site visitor. The COM object implements the IDispatch interface and provides the following functionality:
• Emit installation scripts • Build projects
An example ASP page which uses the interface, as well as the COM object itself, will be present in one of the following locations on your system:
• If you have IIS installed, under the ia folder inside your web server root directory.
• If you do not have IIS installed, inside the Automation\Web Support folder in your InstallAware installation folder.
Please see the runtime files section for information on where to locate the object and its dependencies.
Runtime Files
InstallAware and applications based on InstallAware automation/build technologies require the following sets of runtimes. The runtimes mentioned below are redistributable with your own applications if you have licensed the Enterprise or Architect edition of InstallAware, unless explicitly noted otherwise.
Libraries
Library files provide core functionality. These files, found in the Automation\Libraries folder of your main InstallAware installation folder, must be located inside the same folder as your application:
InstallAWARE Help Library
121
• miaforms.dll • miainfo.dll • mext.dll • actex.dll • dependent.exe • MSIDBWrap.dll • mmergemod.dll • mergemod.dll • mGacInfo.dll • interop\miastub.exe • interop\mia.dll
The last two libraries must reside inside subfolders relative to the root of the application as indicated above.
The library mergemod.dll must be self-registered on the target system if you are planning to use Merge Modules as part of your build process.
If you are planning on code signing your setups, you should also duplicate the authenticode subfolder (found beneath your main InstallAware installation folder) in the destination directory of your application..
Plug-Ins
If your installation makes use of plug-ins (and virtually all installers do), the plug-ins must also be present on the target system (they are already installed on your development system). To install plug-ins on the target system, first check if your plug-in vendor allows redistribution of the plug-in (all InstallAware supplied plug-ins are redistributable). Then:
1. Copy the plug-in folder to the target system 2. Create the plug-in registry entries on the target system
You may obtain the plug-in files and registry entries by observing your development system. See the plug-in authoring overview for more information.
Compression
The compression layer used by InstallAware is available in a self installing form. The installer is found in the following location relative to the root of your InstallAware installation folder: Automation\Libraries\miacomp.exe. You may install/uninstall the layer silently to provide the required compression services to your applications.
Command Line Build Tool
Printed Documentation
122
This tool is available in the root your InstallAware installation folder as miabuild.exe, and is redistributable under the InstallAware Enterprise license or the InstallAware Architect license.
The tool requires the Libraries/Plug-Ins/Compression runtimes described above for proper operation.
Automation Libraries
Win32 DLL
The DLL is available at the following path, relative to the root of your InstallAware installation folder: Automation\Libraries\miaauto.dll.
It is redistributable under the InstallAware Architect license. It is NOT redistributable under the InstallAware Enterprise license.
The DLL requires the Libraries/Plug-Ins/Compression runtimes described above for proper operation.
COM Object
The COM Object files are mAutoWeb.dll and mAutoWebStub.exe. They are found at one of the following locations:
• If you have IIS installed, under the ia folder inside your web server root directory.
• If you do not have IIS installed, inside the Automation\Web Support folder in your InstallAware installation folder
These files are redistributable under the InstallAware Architect license. They are NOT redistributable under the InstallAware Enterprise license.
The COM object requires the Libraries/Plug-Ins/Compression runtimes described above for proper operation. Before the COM object may be used, its server DLL, mAutoWeb.dll, must be self-registered using regsvr32.
Win32 DLL
Using the Win32 DLL
The steps for programmatically emitting and building an InstallAware setup are summarized as follows:
InstallAWARE Help Library
123
1. Use the script management functions to programmatically generate a setup script.
2. Store the total number of lines used in your script for use in step 3 below. 3. Use the project management functions to programmatically generate a
setup project. Have the project reference an existing setup script. 4. Use the build function to build a newly generated or existing setup project.
Script Management Functions
miaInitializeScript miaAddCommand miaFinalizeScript miaGetTotalLines
Project Management Functions
miaInitializeProject miaSetScriptFile miaClearDialogFiles miaClearSupportFiles miaClearMergeFiles miaAddDialogFile miaAddSupportFile miaAddMergeFile miaFinalizeProject
Build Function
miaBuildProject
Structure
COMMATEXT
Script Management
miaInitializeScript
This function initializes in-memory structures for programmatically emitting a new InstallAware script.
void WINAPI miaInitializeScript();
Printed Documentation
124
miaAddCommand
This function adds an installation command to the in-memory installation script.
void WINAPI miaAddCommand( const char* Command, const char* Parameters );
Command
Provides the name of the command to add. The command may be a built-in or plug-in defined command.
Parameters
Provides the parameters for the command. Each command has a unique set of parameters.
All command parameters must be combined into a single string value, formatted as COMMATEXT.
If the command does not expect a parameter, pass NULL in this parameter.
miaFinalizeScript
This function flushes in-memory structures for an InstallAware script to disk and forms a valid MIA script file which may later be referenced from a setup project.
void WINAPI miaFinalizeScript( const char* SaveFile );
SaveFile
Specifies the full path to the script file. It is recommended the project file end with a MIA extension since this is the standard file extension used for InstallAware scripts.
InstallAWARE Help Library
125
miaGetTotalLines
This function obtains the total number of lines that the in-memory script is comprised of. It must be called before the script is finalized.
int WINAPI miaGetTotalLines();
Project Management
miaInitializeProject
This function initializes in-memory structures for programmatically emitting a new InstallAware project.
void WINAPI miaInitializeProject( bool BuildDebug, int BuildLayout, const char* CompressProfile, bool BuildInFolder, const char* BuildCustomFolder, const char* OutputFile, bool AutoIncrement, const char* Conditionals, const char* Manufacturer, const char* Name, const char* Code, const char* UpgradeCode, const char* Version, const char* Language, const char* Title, const char* Subject, const char* Author, const char* Comments, const char* Revision, const char* arPublisher, const char* arContact, const char* arHelp, const char* arUpdates, const char* arComments
Printed Documentation
126
);
BuildDebug
Indicates whether the project will be built in debug mode.
BuildLayout
Indicates the media type to be used in builds by default. The following values are possible:
• 0: Uncompressed Directory Layout • 1: Compressed Self Extracting EXE • 2: Compressed Web Based EXE
CompressProfile
Indicates the name of the compression profile to use in builds. This is typically Structured, but may point towards a custom profile as well.
BuildInFolder
If this value is false, builds will take place in the folder pointed at by the BuildCustomFolder parameter.
If this value is true, builds will take place in the default location, which is the project folder.
BuildCustomFolder
Specifies the custom build folder to use. Ignored unless the BuildInFolder parameter is false.
OutputFile
Allows to override the default name of the setup.exe install launcher file. By default, the name of the launcher file is identical to the project file name. Specify an alternate file name in this field to use a different file name.
AutoIncrement
Indicates whether the project revision code should be automatically updated each time a new build is made.
Please note that building a project from the command line or the automation interface will not increment the revision code.
InstallAWARE Help Library
127
Conditionals
Provides a list of compiler variables for conditional compilation in the form "VAR1=VALUE1","VAR2=VALUE2".
Manufacturer, Name, Code, UpgradeCode, Version, Language, Title, Subject, Author, Comments, Revision
Sets the corresponding fields as used in the Project Properties and Summary Information pages on the Project Options dialog in the InstallAware IDE.
arPublisher, arContact, arHelp, arUpdates, arComments
Sets the corresponding fields as used in the Control Panel Add-Remove Programs Listing page on the Project Options dialog in the InstallAware IDE.
miaSetScriptFile
This function sets the script file referenced by an InstallAware project.
void WINAPI miaSetScriptFile( const char* ScriptFile );
ScriptFile
Specifies the script file to use:
• If a file name without path information is used, the script file will be assumed to exist in the same folder as the project file. This allows for maximum portability when moving projects to different folders/computers.
• If a file name with path information is used, the script file must exist in the absolute path referenced. This may make it more difficult to move projects, because the script file will still be expected to reside in the same folder.
Note
The script file does not need to exist at the time the function is called. This function only sets the project reference for the script file, it does not attempt to access the script file itself.
Printed Documentation
128
miaClearDialogFiles
This function clears the list of dialog files referenced by an InstallAware project.
void WINAPI miaClearDialogFiles();
miaClearSupportFiles
This function clears the list of support files referenced by an InstallAware project.
void WINAPI miaClearSupportFiles();
miaClearMergeFiles
This function clears the list of Merge Modules referenced by an InstallAware project.
void WINAPI miaClearMergeFiles();
miaAddDialogFile
This function adds a dialog file to an InstallAware project.
void WINAPI miaAddDialogFile( const char* Dialog );
Dialog
Specifies the full path to the dialog file to use. The dialog file must already exist. The dialog file will be copied to the project folder when the project is finalized using the miaFinalizeProject function.
InstallAWARE Help Library
129
miaAddSupportFile
This function adds a support file to an InstallAware project.
void WINAPI miaAddSupportFile( const char* Support );
Support
Specifies the full path to the support file to use. The support file must already exist. The support file will be copied to the project folder when the project is finalized using the miaFinalizeProject function.
miaAddMergeFile
This function adds a Merge Module to an InstallAware project.
void WINAPI miaAddMergeFile( const char* Merge );
Merge
Specifies the full path to the Merge Module to use. The Merge Module must already exist. The Merge Module will be copied to the project folder when the project is finalized using the miaFinalizeProject function.
miaFinalizeProject
This function flushes in-memory structures for an InstallAware project to disk and forms a valid MPR project file which may later be used by the IDE, the command line build tool, or the automation interface.
void WINAPI miaFinalizeProject( const char* SaveFile, int ScriptLines );
Printed Documentation
130
SaveFile
Specifies the full path to the project file. It is recommended the project file end with a MPR extension since this is the standard file extension used for InstallAware projects.
ScriptLines
Indicates the number of lines present in the script file referenced by the project. This value may be obtained using the miaGetTotalLines function.
Building
miaBuildProject
This function builds an existing InstallAware project.
bool WINAPI miaBuildProject( const char* Project, const char* Output, const char* Log, const char* Conditionals, int Mode );
Project
Specifies the full path to the MPR project file.
Output
Specifies the full path to the build output folder.
If NULL, the default project output folder will be used.
Log
Specifies the full path to the log file. The log file will receive verbose information on the build process, and may be helpful for tracking build errors.
If NULL, no log file will be created.
Conditionals
InstallAWARE Help Library
131
Provides a list of compiler variables for conditional compilation in the form "VAR1=VALUE1","VAR2=VALUE2".
Mode
Specifies the kind of media to build. Use one of the following values:
• 0: Uncompressed Directory Layout • 1: Compressed Self Extracting EXE • 2: Compressed Web Based EXE
COMMATEXT
This structure represents a collection of multiple items in a single comma-delimited string. Each item is additionally surrounded by a double quote.
For example, the collection of the following strings:
Stri,ng 1 Stri"ng 2 String 3 String5
will be represented as the following single string:
"Stri,ng 1","Stri""ng 2","String 3","","String5"
Using the COM Object
The COM object implements an IDispatch interface and can be called from environments supporting the interface. For instance, use the COM object to dynamically emit InstallAware setup scripts and build them from webpages via ASP scripting.
mAutoWeb.CoInstallAware Methods
InitializeScript AddCommand FinalizeScript
Printed Documentation
132
mAutoWeb.CoInstallAware Properties
BuildProject GetTotalLines
Example ASP Script
Set IA = Server.CreateObject("mAutoWeb.CoInstallAware") IA.InitializeScript IA.AddCommand "Set Variable","PREREQ","FALSE" IA.FinalizeScript Request("ScriptFile") Dim LineCount LineCount = IA.GetTotalLines Dim BuildResult BuildResult = IA.BuildProject(Request("ProjectFile"), "$NULL$", Request("LogFile"), 0)
Command Parameters
Each installation command, whether built-in or plug-in provided, has a unique set of parameters. The parameters are often very similar to, although not identical, to the values entered in the IDE while the command editing window is open.
To discover the exact parameters of any command
1. In the IDE, add the command to your script. Use meaningful values while completing the fields. This will help you recognize parameter ordering.
2. Copy the command to the clipboard. Open Notepad, and paste the command from the clipboard. The command will paste as plain text.
3. Observe the text. The values following the GUID are the command parameters. Each line after the GUID represents a single command parameter.
4. You will recognize how parameter fields are ordered via the values you entered in step 1 above.
5. Add the command to your script programmatically using all parameters discovered in this way.
Notes
InstallAWARE Help Library
133
• If there are empty lines among command parameters, it indicates those fields are reserved. Simply duplicate the exact behavior in your automation projects
• If there are no lines after the GUID, it indicates the command has no parameters
• See the automation example projects for more information
135
Index A
Apply Changes 54
Authoring Process 14
Automation Overview 120
B
Batch Building 19
Behavior 103
Build 17
Build Settings 19, 39
Building 18, 110
C
Call DLL Function 89
Change Setup Icon 26, 106
Change Your Setup Theme 27
Check File Version 55
Classes
Commands 50
Classes 50
Code Installation Logic 16
COM Object
Using 132
COM Object 132
Command Line 34, 110
Command Parameters 132
Commands
Classes 50
Commands 50
COMMATEXT 131
Comment 56
Compatibility Testing 24
Compiler Variable Else 56
Compiler Variable End 56
Compiler Variable If 56
Compiling 18
Compress Better 36
Conditions 43
Control Service 57
Controls 100
Convert Path 57
Copy/Move Local Files 58
Create Baseline Project 16
Create File Type 59
Printed Documentation
136
Create Folder 60
Create ODBC DSN 61
Create Shortcut 61
Creating
Start Menu Uninstall Entry 32
Creating 32
Creating New Setup Themes 27
Customizing Dialog Bitmaps 28
Customizing Script Appearance 12
D
Debugging 22
Define Component 62
Define User Interface 16
Delete Files 63
Delete Registry 64
Deploy 17
Deployment 25
Design Setup Logic 15
Design Time Exports 114
Determine Requirements 15
Dialog Editor
Starting 99
Using 99
Dialog Editor 99
Dialogs 47
DirectX Runtime 90
Disk Space Calculations 33
Display Dialog 64
Displaying
Project Manager 7
Splash Screen 28, 106
Displaying 7, 28, 106
Does File/Folder Exist 65
Download File 91
E
Edit INI File 66
End 67
Express 7
Extract Path 67
F
Features 45
Files 45
G
Get Component State 68
Get Environment 68
Get File Version 68
Index
137
Get Folder Location 69
Get INI File Settings 70
Get System Settings 70
Get Temporary File 71
GoTo Label 71
H
Hide Dialog 72
I
IDE 22
IDE Layouts 13
IDE Tools 13
If 72
Importing 7
Increasing Build Speeds 37
Inside
Running 22
Inside 22
Install Application Data 17
Install Assembly 73
Install Files 73
Install MSI Package 86
Install ODBC Driver 74
Install Service 75
InstallAware 1, 2
Internet Explorer 92
Intra-Dialog Relations 102
J
JSharp Runtime 93
L
Label 77
License 29, 107
Localization Process 110
Logged Execution 23
M
Mathematics 78
MDAC Refresh 94
Meaning
Product 32
Meaning 32
Media 48
MessageBox 78
MiaAddCommand 124
MiaAddDialogFile 129
MiaAddMergeFile 129
MiaAddSupportFile 129
MiaBuildProject 130
Printed Documentation
138
MiaClearDialogFiles 128
MiaClearMergeFiles 128
MiaClearSupportFiles 128
MiaFinalizeProject 130
MiaFinalizeScript 125
MiaGetTotalLines 125
MiaInitializeProject 125
MiaInitializeScript 124
MiaSetScriptFile 127
MimarSinan InstallAware Enterprise 1
Modifying
Script File 8
Modifying 8
Modifying Merge Modules 10
Modifying Project Dialogs 8
Modifying Support Files 9, 105
Moving
Project 6
Moving 6
MSI Setup Installed 77
MSXML 4 SP2 95
Multiple Installations 33
N
NET Framework 88
New Project
Starting 5
New Project 5
New Project Dialog 5
O
Opening
Project 6
Opening 6
P
Passing Variables 104
Plug-In Authoring Overview 112
Pre-Defined Compiler Variables 53
Pre-Defined Variables 51
Product
Meaning 32
Product 32, 42
Project
Moving 6
Opening 6
Project 6
Project Manager
Index
139
Displaying 7
Project Manager 7
Project Settings 38
Project Wizard 42
R
Read 79
Read Registry 79
ReadMe Files 29, 107
Reboot 80
Reboot Computer 80
Register Library 80
Registry 47
Resume 80
Revision Codes 32
Run Installed Application 32
Run Program 81
Running
Inside 22
Running 22
Runtime 96
Run-Time Exports 117
Runtime Files 121
S
Saving 6
Script Editor
Using 11
Script Editor 11
Script File
Modifying 8
Script File 8
Scripting Aware 2
Set Component State 82
Set Variable 82
Setup Command Line Parameters 111
Setup Commands Preceding Apply Uninstall 34
Sharing Web Media Blocks 38
Shortcuts 46
SP1 92
Splash Screen
Displaying 28, 106
Splash Screen 28, 106
Start Menu Uninstall Entry
Creating 32
Start Menu Uninstall Entry 32
Starting
Printed Documentation
140
Dialog Editor 99
New Project 5
Starting 5, 99
Support Files 105
T
Terminate Install 83
Terminate Program 83
Test 17
Testing Interactive Elements 31
Text File
Write 85
Text File 79, 85
U
Un 86
Uninstalling 34
Upgrade Installs 33
Upgrading from InstallAware 2.x 5
Using
COM Object 132
Dialog Editor 99
Script Editor 11
Win32 DLL 123
Using 11, 99, 123, 132
Using Compiler Variables 53
Using Interactive Progress Flash 29, 107
Using Interactive Progress HTML 30, 109
Using Static Progress Billboards 31, 109
Using Variables 53
V
Visual Basic VM 95
Visual C 96
W
Web Aware 1
Web Media Block 83
What's New 3
Win32 DLL
Using 123
Win32 DLL 123
Windows Installer 97
Windows Installer Aware 2
Windows Media Format 98
Wizard Loop 85
Write
Text File 85
Write 85
Write Registry 85