Click here to Skip to main content
13,292,376 members (57,554 online)
Click here to Skip to main content
Add your own
alternative version


8 bookmarked
Posted 6 Aug 2008

Solving Today’s Setup Authoring Challenges with the New InstallAware 8: Windows Installer without Rocket Science

, 6 Aug 2008
InstallAware has been built from the ground up to offer developers maximum flexibility with the Windows Installer platform. InstallAware brings runtime decision making, better-than-CAB compression, partial web deployment, Flash/HTML interactive billboards, and many more time saving benefits.

Editorial Note

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

A Unified Install Image

InstallAware lets you build a single, unified install image for all your product editions inside a single setup binary, which can be distributed both online and on a physical installation disc. This saves you valuable time and effort when developing, building, and testing your setups – putting an end to the “copy and clone” nightmare which many setup projects degenerate into.

During an online installation, the InstallAware setup dynamically downloads only the files that are required, saving your end-users valuable time and saving you bandwidth. During an edition upgrade, the end-user simply starts setup in maintenance mode, enters the new serial number, and InstallAware automatically upgrades the existing installation – downloading and installing only the new files from multiple redundant servers distributed across the globe.

Because setup files are encrypted, your physical installation discs can ship with files for all product configurations. This enables users to trial your product from, for example, a magazine’s companion disc, and then simply activate the additional bits when the correct serial key is entered – offering the ultimate convenience for not only end-users who need not wait for physical media shipment, but also to you, allowing you to press a single installation disc for all product editions and features.


Easy Build Time Customization with Compiler Variables and Automation

If you have a hard requirement for different installation images, InstallAware offers two very compelling choices for that route – while still avoiding the copy/clone nightmare.

InstallAware features compiler variables, similar to the IFDEF constructs found in most programming languages. Compiler variables allow you to customize both your setup logic and setup contents at build time from a single master setup project, without having to use an automation interface to emit complete setup projects from scratch. Simply assign values to your compiler variables and rebuild from either the InstallAware IDE or the command line build tool to activate your changes.

In circumstances where you must have the ultimate flexibility, InstallAware’s automation interface lets you emit complete setup projects programmatically from your own applications or build environment, without ever having to fire up the InstallAware IDE. Of course, you may build emitted setup projects using InstallAware automation as well.


Runtime Business Intelligence

InstallAware’s proprietary runtime branching MSIcode technology embraces and extends Windows Installer, enabling intelligent decision making at install time from within your setup script. More than just running custom actions or scripts, InstallAware’s MSIcode puts you in full control over your entire setup, letting your installation script drive the logic of the entire installation process.

For instance, features that end-users are authorized to install are dynamically defined by MSIcode. In a trial installation, end-users would not even see parts of the product that are reserved for paid editions, as those features would not even be defined yet by your setup.

InstallAware’s MSIcode technology does NOT require a scripting engine to be pre-installed, and runs on all Windows versions from Windows 95 Gold to the latest Server 2008 64 bit. Unlike other custom scripting solutions, InstallAware’s MSIcode technology is bullet-proof and does not introduce additional points of failure into your setup, which is still executed in its entirety by Microsoft’s Windows Installer engine itself.


Certified for Vista, Windows Installer Standards Compliant

At build time, InstallAware compiles all your MSIcode scripts into an automatically Vista Certified logo-compliant, Windows Installer setup package (an MSI file). While the Windows Installer specification does not ordinarily permit runtime branching and decision making, InstallAware permits the integration of business intelligence into the setup process, and reduces your integration workload – while remaining fully standards-compliant and supporting Group Policy/Active Directory unattended deployment.


Seamless Third Party Setup Integration

Applications today have a complex set of requirements for technology runtimes, such as various versions of the Microsoft .NET Framework which must be installed before the main application. InstallAware seamlessly detects and installs each of these third party components, along with their dependencies (dynamically downloading them as required, if physical media is not available).

Third party setups won’t ever launch in separate windows, which would require attention to separate installation steps from end-users, introducing more points of failure into your installation process flow. Instead, InstallAware lets you configure third party installations precisely as you require, captures their live installation progress, and displays this progress natively inside your own setup wizard screens, improving end-user confidence and reducing your support costs.


Superior Compression

Every file that goes inside your setup, including third party setups, is re-compressed using InstallAware’s superior LZMA/BCJ2 compression. Due to the law of entropy in data compression, data that has been pre-compressed cannot be recompressed, even if the recompressing algorithm is stronger than the original. InstallAware also handles this case by seamlessly expanding and then repacking third party setups with stored (zero) compression. This process completely preserves data integrity, avoiding the burden of setup re-packaging, while actually reducing the already-compressed size of the native third party setups by as much as 67% (.NET Framework 1.1 with Service Pack 1).

Naturally, these space savings translate to fewer physical installation discs, as well as saved bandwidth costs for both you and your end-users while setup is running from the web.


One-Click Binary Patching

When it’s time to issue software updates, InstallAware automatically builds binary patches which contain only the delta between the original release and the latest version. A separate patch project is never created at any time – InstallAware handles all Windows Installer patch file (MSP) creation details internally. Clicking the “Build Patch” button after referencing the old version setup.exe files is all that is required!

These patches are also empowered with MSIcode scripting, so they are again intelligent at runtime, performing complex operations based on the state of the end-user system. For instance, patches can be blocked from installing on systems where the end-user maintenance contracts have expired with just a line of MSIcode. A single patch may target one or more product versions, and is built from the same setup project sources.


Customizable, On-Demand Web Updates

InstallAware features a built-in web update client, which ships with full MSIcode sources and editable dialogs. Updates may be invoked on-demand from your application, or on a pre-set schedule - mimicking the behavior of Windows Update.

Business intelligence can also be embedded into the update client, to filter available updates by product edition, language, version, customer subscription states, and more. There are absolutely no runtime fees or restrictions on the number of updates which may be deployed. InstallAware also does not install a web update service on end-user systems, reducing the attack surface on the target machine while conserving system resources.



“Electronic software delivery (ESD) plays a larger role in the way we deliver our products today. InstallAware empowers our new ESD functionality in the Delphi and C++Builder products, increasing Internet delivery flexibility and performance, while providing customers instant access to features based on electronic software purchases. We have dramatically enhanced the user experience for both trial evaluations and electronic purchases – made as simple and flexible as possible using InstallAware.” – Michael Swindell, Vice President of Products, CodeGear

“InstallAware 8 has eliminated the need for us to build 40+ separate setup packages, consolidating everything into a single setup project and reducing our integration costs tenfold – while providing full compliance with Windows Installer standards and producing a Vista Certified native MSI package.” – Allen Bauer, Chief Scientist, CodeGear


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Candice Jones
United States United States
No Biography provided

You may also be interested in...


Comments and Discussions

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.171207.1 | Last Updated 6 Aug 2008
Article Copyright 2008 by Candice Jones
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid