Installer packaging
InstallMate supports several flexible packaging options for your installer; they are chosen through the Packaging option in the package settings.
Each method in the following table only specifies the default packaging for the package; you can still use any of the other methods for specific files and components in the project. See Packaging variations for some suggestions.
Packaging method | Description | Suitable for | Remarks |
---|---|---|---|
Compressed .exe | Creates a single self-extracting installer that contains the setup program, the setup database, and the installation files as a compressed archive*. | Distribution as an Internet download, or other channels that favor a single monolithic installation package. | Disk spanning does not apply. If the resulting .exe exceeds 1 GB or so in size, then Windows may not be able to load it. In that case, we recommend specifying Download for some of the components, or switching to a different packaging method altogether. See Packaging variations. |
Plain file tree | Creates one .exe file with the setup program and setup database, and a separate folder tree that mirrors the actual installation with all the installation files in uncompressed format*. | Distribution on large-size media such as CD-ROM and DVD, where you need access to individual installation files prior to installation (or prior to burning the CD-ROM or DVD). | The entire file tree must fit on the distribution medium. See the Build output files topic for details. |
Loader + Archive | Creates one .exe file with the setup program and setup database, and a separate .tiz archive that contains all installation files in compressed format*. | Distribution on media such as CD-ROM and DVD, where a single large .exe installer might slow down the installer's startup time due to excessive scanning times from anti-virus and other security tools. | If disk spanning is specified, then the compressed archive may be split into several files that are each <= maximum span size and are intended to distributed on as many separate disks. |
Loader + Download | Creates one .exe file with the setup program and setup database, plus a separate .tiz archive for each component that contains the installation files in compressed format*. The .tiz archives are intended for downloading from an Internet or local server. | Distribution as an Internet download with a small initial download size, followed by the bulk of the installer when installation commences. The downloads are selective: only those that are needed for the selected installation options are retrieved. | Disk spanning does not apply. |
*However, for individual files you can override this and force a file to be always compressed or always plain. Additional variations are possible at the component level; see Packaging variations below.
Packaging details
The installers created by InstallMate contain the following elements:
- The Setup program proper, also known as a setup stub. This is the program that performs the actual installation steps.
- The Setup database containing the installation information: what to install and where, which actions to perform, and the installer dialogs to show along the way.
- Various auxiliary files such as the optional extension DLL and the resource DLL that contains the localized installer messages and dialog boxes.
- The installation files, i.e., the files that you want to install on the customer's system for your application.
InstallMate provides several packaging methods for these elements, and you can mix packaging methods in a single installer. For example, you can create an installer that consists mostly of a single self-extracting package, but that will download some installation files on an as-needed basis. (This can be useful if you want to keep your basic installer small, but occasionally need to install large and less often needed files such as optional components or a database runtime engine.)
How the installer is distributed
The installer proper, consisting of the Setup program, the Setup database, and various auxiliary files such as the resource DLL that contains the installer's dialog pages, is always distributed as a single executable file with a .exe file name extension. Internally it contains a compressed archive that holds the database and auxiliary files. In the case of the Compressed .exe packaging method (see below), the installation files are also included in this internal archive; for all other packaging methods, the installation files are stored separately.
Note: If the installer is digitally signed (through the Sign after build option of the package), then it is this installer executable that has the signature added to it. Any additional distribution files are not signed, but may or may not have their own integrity protection. Compressed archives have their own per-archive digests, but installation files distributed in uncompressed (plain file) form have not, because these are often intended to be replaced when the distribution media are written.
How installation files are distributed
Installation files can be distributed in the following ways:
- Compressed, as part of the main installation package.
- Compressed, in a separate archive on the same distribution disk(s) as the installer itself.
- Compressed, in one or more archives that are selectively downloaded during installation on an as-needed basis.
- Uncompressed, on the same distribution disk as the installer itself.
The Packaging attribute of the package determines the default distribution method, but this can be overridden on a per-file and a per-component basis.
Packaging variations
You can vary the installer packaging per file and per component. Generally speaking, the packaging method specified for the current package defines the default, which can then be overridden for each component and each file. This allows you flexibility in deployment scenarios even within a single installer project, by using several packages to cater for variations in distribution.
Example 1
- Package A specifies Compressed .exe;
- Package B, in the same project, specifies Loader + Archive;
- Package C, in the same project, specifies Loader + Download.
- Components P, Q and R specify Always download; the remaining components use the default packaging.
In this scenario, you build three different installers from the same project. The first installer, defined by package A, is most suitable for Internet downloads; everything except components P, Q, and R arrives in a single package. The second installer, based on package B, can be used for distribution of the same product on CD-ROM, DVD, or a memory stick. In either case, the installers will install the same product and will download components P, Q and R (which presumably contain large, but rarely used files) only on an as-needed basis. The third installer, based on package C still in the same project, consists of a very small initial portion that will download any required components (including, but not limited to P, Q and R) on an as-needed basis during installation.
Package | Contents of base package | Other local content | Download content |
---|---|---|---|
Package A | Everything except components P, Q, and R | nothing | Components P, Q, and R (as three separate packages) |
Package B | Only loader + database | A single .tiz archive containing all installation materials except components P, Q, and R | Components P, Q, and R (as three separate packages) |
Package C | Only loader + database | nothing | A Download.tiz main package, plus three additional packages for components P, Q, and R |
Example 2
- The package specifies Loader + Archive;
- The file Sample.txt specifies Plain file.
In this case, only one installer is built that consists of three files: a small loader (containing the Setup program and installation database); a presumably much larger, compressed archive that contains most of the installation files in compressed format; and the file Sample.txt, which is kept separate and uncompressed, perhaps because it contains a registration key or other customer-specific information that you want to modify prior to creating the distribution CD-ROM, DVD, or memory stick.
Package | Contents of base package | Other local content | Download content |
---|---|---|---|
Example 2 | Only loader + database | A single .tiz archive containing all installation materials except the file Sample.txt, plus a separate, uncompressed copy of the file Sample.txt | nothing |
Interaction between package, component, and file packaging options
The following table shows how the packaging options at the various levels determine where a particular installation file will be stored in the installation package. The file names used in the table have the following meaning:
- Installer.exe represents the main installer executable containing the setup program, the setup database, and optionally some or all of the installation files in compressed format. This file always exists and by default is called <ProductName>-Setup.exe, although you can change that in the package options.
- Component.tiz represents a component download archive, which contains all downloadable files belonging to the component in compressed format. Each component marked Download has its own archive with the same name as the component and a .tiz file name extension. Components marked Default have a download archive if and only if they are part of the overall Loader + Download packaging.
- Plain file tree represents the plain file distribution tree that is created during the build to contain all files that are distributed in plain (uncompressed) form. It only exists if there are plain files to distribute.
- Disknnnn.tiz represents the disk-spanning main installer archives that contains the installation files in compressed format. This file only exists for the Loader + Archive packaging option; the nnnn portion indicates the intended disk number for that part of the archive.
- _TinMain.tiz represents the main installer archive that contains the installation files in compressed format for the Loader + Download packaging option. It is meant to be hosted on your Internet server, from where it will be downloaded during installation.
If a file is not controlled by a component, then it behaves as per the component Default packaging option. Note that download archives are not subject to disk spanning; they are always in one part, regardless of their size.
Storage location of an installation file as function of its packaging options
Installer package option | Component option | Default | Compressed | Plain file |
---|---|---|---|---|
Compressed .exe | Default or Local | Installer.exe | Plain file tree | |
Download | Component.tiz [download] | |||
Plain file tree | Default or Local | Plain file tree | Installer.exe | |
Download | Component.tiz [download] | |||
Loader + Archive | Default or Local | Disknnnn.tiz | ||
Download | Component.tiz [download] | |||
Loader + Download | Default | Component.tiz or _TinMain.tiz [download] | ||
Local | Installer.exe | |||
Download | Component.tiz [download] |
Disk spanning
The term disk spanning refers to a large installation package that is broken into smaller, disk-size parts. In InstallMate 9, disk spanning is available if you choose the Loader + Archive packaging option. In that case, the installation package will be broken up into the following parts:
- Installer.exe (the main installation package; the name varies as per the Installer name option of the package);
- Disk0001.tiz (the first portion of the installation archive, intended for inclusion on the first disk);
- Disk0002.tiz (second portion, to go onto the second disk);
- ...etc. until Disknnnn.tiz, where nnnn is the last disk number.
The combined sizes of Installer.exe plus Disk0001.tiz will be equal to the disk size that you specified in the advanced build options; Disk0002.tiz to Disknnnn-1.tiz will each be equal to the specified disk size, and the final file Disknnnn.tiz will be less than or equal to the desired disk size. If the installer includes plain (i.e., uncompressed) installation files, then the space needed for these files and their parent folders will be automatically deducted from the space available on the first disk. See Distribution files for details of which files go onto which disk.
Note: If you use a password to protect your installer (see package attributes), then each individual archive and archive span will be encrypted and protected by the same password. Under normal circumstances, the customer only needs to specify the password when the first archive is accessed; the same password will be automatically reused for any remaining archives and spans during the same installer session.