50% Faster and 174% Smaller than InstallShield

A new benchmark analyzed the compression efficiency and installation speeds of one open source and two leading commercial installation platforms, finding that the commercial InstallAware X2 platform defeated both the commercial InstallShield 2014 platform and the open source WiX 3.9 platform; on both speed and size.

Initial Approach: The InstallAware X2 Program Files folder, containing 15,985 files, 2,860 folders, and 14.7 GB of data, was to be installed using WiX 3.9, InstallAware X2, and InstallShield 2014 – from a single, self-extracting executable suitable for online distribution. This initial approach failed as follows:

o InstallAware X2 was able to build a Native Engine setup that could install this complete folder.
o The Heat tool in the WiX 3.9 toolkit crashed while collecting file data from the Plug-Ins subfolder, and didn’t crash but displayed warnings and exceptions while collecting file data from the Runtimes subfolder (possibly due to extra-long file paths which are unrecognized by WiX).
o The InstallShield 2014 IDE crashed while building a Windows Installer based setup file. The output size of the InstallShield 2014 IDE while building an InstallScript based setup file was in excess of 4GB, which cannot be run under Windows due to Windows’s own technical limitations.

Since WiX 3.9 could not successfully build a setup, and since InstallShield 2014 could only build a setup that couldn’t actually run on Windows, the initial approach had to be modified to enable a comparison.

Modified Approach: A small subset of files inside the InstallAware X2 Program Files folder were installed – all of the nine 7ZIP archives inside the Runtimes subfolder, together with the sqlexpress2005bin_x64 and the sqlexpress2008bin_x64 subfolders of the Runtimes folder. This modified approach succeeded as follows:

o InstallAware X2 built a setup in 19 minutes and 27 seconds, weighing in at 430,673 KB, self-extracting in 45 seconds, and installing in 3 seconds.
o WiX 3.9 built a setup in 4 minutes, weighing in at 1,397,208 KB, self-extracting in 14 seconds, and installing in 42 seconds.
o InstallShield 2014 crashed again while building a Windows Installer based setup file. InstallShield 2014 built an InstallScript based setup file in 3 minutes and 41 seconds, weighing in at 1,179,986 KB, self-extracting in 6 seconds, and installing in 1 minute and 6 seconds.

All tests were conducted on a PC with 16 GB of RAM, powered by an AMD FX 6300 8-core CPU.

Commentary: InstallAware X2 was the slowest to build and self-extract, but installation was an order of magnitude faster after self-extraction, and the produced setup was the smallest of the three. WiX 3.9 produced the largest setup of the three, and InstallShield 2014 was the slowest to install among the three. InstallShield 2014 was the fastest to self-extract and the fastest to build among the three.

Conclusion: InstallAware X2 installed 50% faster than InstallShield 2014 and 17% faster than WiX 3.9. InstallAware X2 compressed 174% smaller than InstallShield 2014 and 224% smaller than WiX 3.9. Software installation developers are encouraged to reproduce and validate the results on their own systems. All of the setup projects used in the tests above are available for immediate download at http://www.installaware.com/acidtest.asp. Developers are strongly encouraged to experiment with their own apps and report their findings to pr@installaware.com.

InstallAware X2: Celebrating A Decade of InstallAware

Over the course of the past fourteen months, InstallAware engineers have been hard at work putting together a release worthy of our tenth year in business:

InstantInstall Acceleration: InstallAware is now the fastest installer on Windows. InstantInstall technology accelerates any existing Native Engine InstallAware setup by an order of magnitude – installing your apps literally in the blink of an eye(1).

64-bit Compression: Shrink apps and data by up to 90%, or enjoy an extra 30% size reduction if you were already on our compression platform(2). Beat Microsoft’s own compression on runtimes such as .NET.

Windows 10 Eco-System: Integrated with Visual Studio 2015. Click “Run” on the InstallAware toolbar in any Visual Studio version, and the InstallAware Add-In builds your setup for you instantly(3).

Fading/Sliding Wizard Transition Special Effects: Delight and instill confidence in your app-savvy users with new wizard transition FX, available only with InstallAware, and compatible with all pre-built or custom-made setup themes(4).

Application Pinning: Pin your apps to the Windows 8.1 Start Screen or the Windows 10 Start Menu Live Tiles section; illustrating our intent to do everything we can to get your apps noticed and make them shine(5): Microsoft and InstallShield claim pinning impossible.

Team Foundation Server: Integrated with Microsoft Team Foundation Server versions 2010, 2012, and 2013 – enjoy secure source/version control and collaborate locally or globally with setup teams.

Extra-Long Path Lengths: Transcend the MAX_PATH character limit. InstallAware even “plays nice” with legacy installers you are spawning from deep paths, mounting them at a shortened path to ensure your third party setups succeed.

Refactored Runtimes: Install on both 32-bit and 64-bit operating systems from a single runtime, enjoy 64-bit compression savings, deploy .NET Framework 4.6, the Visual C++ 14 Runtime, and the latest SQL Server Express versions.

InstallAware X2 revitalizes the entire Windows Desktop experience. InstallAware X2 is the Desktop Developers’ Destiny!

It will take InstallShield months, possibly years to clone all of our benefits above. Switch to InstallAware X2 today – meet your destiny!

Directly witness InstallAware X2’s technology at work while you are installing InstallAware X2 itself from http://www.installaware.com/download.asp:

1: The InstallAware X2 setup, consisting of nearly 15 GB of data, completes in mere moments after the compressed archive of 2 GB self-extracts.

2: Despite the addition of more runtimes and data over its previous version, InstallAware X2’s setup is approximately 30% smaller than the previous version.

3: The InstallAware Visual Studio Add-In is 100% Free and may be installed on any computer with Visual Studio using InstallAware X2 setup.

4: Run the InstallAware X2 setup for a first-hand look at the impressive sliding wizard transition special effects.

5: The InstallAware X2 IDE pins itself to the Windows 8.1 Start Screen or the Windows 10 Start Menu Live Tiles during installation.

Microsoft Security Update KB2962872 Breaks InstallShield; InstallAware 18 Offers Flexible and Secure Upgrade Path.

Microsoft’s Security Update KB2962872 is crashing multiple versions of InstallShield as described at http://windowsitpro.com/security/micros … tallshield, rendering a very expensive product inoperative. While InstallShield is currently researching the nature of the problem as described at http://www.installaware.com/brokenshield.asp, InstallAware offers a very flexible upgrade path to all developers and administrators affected by the issue.

InstallShield have made great strides in recent years catching up with the flexibility offered by InstallAware. InstallShield 2014 released this year natively implemented some very popular InstallAware features, some of which had been available in InstallAware for as long as a decade:

1) High-DPI Installs (since 2004)
2) Multiple Instance Installs (since 2005)
3) Setup Always Installs Latest Available Version Online (since 2012)

Companies such as Embarcadero migrated away from InstallShield as early as 2008, recognizing the more flexible nature of InstallAware early on, as described in the migration case study available at http://www.installaware.com/CodeGearCaseStudy2008.pdf. In 2008, a vulnerability was discovered in the InstallShield Update Service Agent, as documented at https://www.kb.cert.org/vuls/id/837092. Arbitrary code could be executed, compromising any system with InstallShield-installed products on them.

InstallAware in its decade of operation has never been affected negatively by Microsoft Security Updates, or compromised end-user systems where InstallAware setups have been run, under any circumstance. InstallAware‘s emergence after the invention of Microsoft’s Windows Installer standard has made it a stable, well-designed product from the ground-up; whereas legacy installation vendors have had to scramble to retrofit their ageing technology dating to the early 90’s.

In addition to the unsurpassed flexibility and stability offered by InstallAware for Windows software developers and Windows system administrators, licensing is also effortless on the InstallAware platform. InstallAware‘s licensing just-works – without needing to install dedicated product license servers, or without even requiring an Internet connection to activate or use products on an ongoing basis. This is a boon to computing environments which must remain disconnected from the Internet for security reasons.

List of Bug Fixes in InstallAware 18.08

From 18.07:

The new SQL Server 2014 RTM runtime now replaces the old SQL Server 2014 CTP2 beta.

Code signing for the actual MSI payload is now operational.

Visual C++ 11 runtimes with ATL, MFC, C++ AMP, and OpenMP are now available.

From 18.06:

SSD detection on RAID arrays and virtual machines failed.

From 18.05:

Some controls misinterpreted arrow key navigation as tablet pen flicks.

Some older AMD and Intel CPUs occasionally caused failures during the loading of setup dialogs.

Microsoft Surface Pro and Surface Pro 2 hardware were being misreported as virtual hardware.

From 18.04:

The MaskEdit control, when a mask was specified, would immediately skip to the next dialog.

From 18.03:

Additional intermittent out of memory errors during compression have been fixed.

The SQL Server 2012 RTM (Denali) runtime had been accidentally removed from the distribution.

Sophisticated IIS 7 configurations gave rise to occasional issues.

IIS 7 configurations now support Unicode.

Tablet pen flicks were unsupported in both the IDE and the setup engine. Now you may flick your way through setup wizard screens.

The IDE visual Registry designer displayed the correct 64 bit registry keys/values but failed to add the correct 64 bit registry keys/values, instead adding the 32 bit counterparts.

The IDE visual Registry designer failed to edit existing registry keys/values in a project due to the expanded parameters of the Write Registry command in InstallAware 18, supporting remote computers for the first time.

From 18.02:

InstallAware required .NET 2.x-3.x on Windows 8.0-8.1 to obtain assembly information and build MSI databases using the Install Assembly command.

From 18.01:

Flash controls on dialogs with Aero Glass enabled were inoperative.

Visual Studio Add-In generated projects, including all projects built using the Free Edition of InstallAware, showed dialogs for license and readme files, even when these files were not included with setup.

The setup resource packing process included a duplicate copy of each plug-in runtime DLL, potentially exponentially increasing the size of the setup resource binary when multiple calls to plug-ins were made in the setup script (even for identical plug-ins).

The default IDE window position did not fit on small resolution displays.

From 18.00:

Windows 8.1 and Server 2012 R2 detection fixed.

The setup self-extractor now correctly displays error messages such as running out of disk space.

The Glass component can now be successfully deleted from a form.

Occasional out of memory errors during compression have been fixed.

List of Bug Fixes in InstallAware 17.06 (23)

From 17.05:

The setup engine had lost compatibility with operating systems older than Windows XP Service Pack 2.

The Dialog Designer was unable to display or edit (past the point of saving and reloading forms) any hidden or invisible dialog controls.

The Dialog Designer was unable to retain the Aero Glass control when saving forms, or add the control to new forms.

Localizations were corrupted for the Chinese (Taiwan) language.

From 17.04:

Environment variables which had empty contents after an un-installation were not being entirely removed by the Native Code Setup Engine.

(De)compression tasks left the file download subsystem in an unstable state under rare combinations of operating system language and locales.

Running built setups or exploring build folders outside of the IDE failed when the target file or folder contained compiler variables.

Under very rare combinations of Unicode user accounts and different locales for non-Unicode software, when MSI files were being built in non-Unicode mode, the setup engine could not properly acquire installation properties.

From 17.03:

The PasswordChar property of an Edit control could not be set as part of dialog rules.

The Set Access Control command failed to set rights on true 64 bit file system objects.

The notification bell overlaid on the setup Taskbar button would be lost when setup was minimized to the system tray.

The IDE Power Tweaks designer treated LOADOLDDATA as a setup script variable, and not as the compiler variable that it is.

The Native Engine rolled setup back even if at least one Apply Install was called and setup was subsequently cancelled.

From 17.02:

The App-V 5 Compiler occasionally experienced infinite recursion when processing Create File Type commands.

The setup binary has been optimized for size.

From 17.01:

The default compression strength in template projects was inoperative.

From 17.00:

The Apply Patch statement failed under rare circumstances on Windows XP.

Dropping a new command on the MSIcode editor scrollbar caused a frivolous error message.

The built-in InstallAware custom action called ACTAWE failed under rare circumstances due to a memory overwrite bug.

The App-V 5 Converter did not support Unicode file names.

From 16.07:

The MSI_ALL setting was not reflected in the Power Tweaks designer.

The Project Options dialog did not accurately portray the state of all compiler variables in visual check-boxes.

The IDE hint for the Web Media Blocks designer was missing.

An Iranian Saint: Elham Asghari

As a swimmer myself, I am deeply touched by the story of Elham Asghari:

www.youtube.com/watch?v=6knmnOebfzg

By way of the Internet, I would like to share my thoughts with Elham:

Your courage and willingness in the face of insurmountable odds clearly demonstrates that you are on the fast track to enlightenment. Your love and service to those who would choose to oppress you is illustrated by your choice of birth in this lifetime. Congratulations on your accomplishment of incalculable merit in a single incarnation!

From this humble swimmer, heartfelt congratulations to Elham on setting a 20 kilometer world record! You are the personification of the human spirit in its finest form.

List of Bug Fixes in InstallAware 16.07 (28)

From 16.06:

Importing registry files (.REG) was broken.

Scanning dynamic dependencies for files (.EXE) did not preserve the correct bitness of 32 and 64 bit folder locations.

Custom PNG logos for the setup splash screen were broken.

From 16.05:

The Schedule Task command was occasionally failing, especially as used from the scheduled mode web updates script.

The Get System Settings and Get OS or SP Level functions were failing to accurately report Windows version information for Server editions of Windows.

The Dialog Editor failed to set the PasswordChar property of Edit controls.

From 16.04:

The MSIcode script editor Search & Replace failed when the new string contained the old string.

The MSIcode script editor Search & Replace was not undoable.

From 16.03:

The File Bag plug-in did not generate a collision-proof folder layout when being used inside the same web media block with identically named source file names during multiple invocations.

The Dialog Editor did not support editing lists of strings.

From 16.02:

The IDE profiles were installed incorrectly due to a bug in the setup script. The correct profiles are now installed. Please note that the license generator binaries have not been affected in this fix.

From 16.01:

The Get System Settings command caused memory corruption when obtaining user account information.

Forms were not scaled properly on very large font screens (>120%, ex: Windows 8 Surface Pro’s default of 150%).

Setup source caching failed for very long paths, affecting various application runtime installations such as .NET 4.5.

The MS SQL Server plug-in often failed to connect at runtime.

Marquee mode progress bars were inoperative.

Default InstallAware plug-ins had a risk of memory corruption.

The Create Virtual Folder command failed to bind the requested ASP.NET version under IIS7.

MDAC runtime installation commands were failing at runtime.

The Transform Instance command was among those affected by intermittent failure of persistent data stream caching.

Progress monitoring and safe aborts on a limited subset of actions were offline.

From 16.00:

The Register Assembly command was inoperative under the Native Code Setup Engine.

The Download File plug-in could not be loaded at runtime.

The ODBC commands caused random MSIcode compilation errors.

From 15.51:

The file exclusion masks in the Install Files command did not support all logical patterns.

Code signing failures with very large files occasionally resulted in built binary corruption.

The Delete Registry command did not succeed with all keys and values.

The file and product version information fields occasionally had insufficient storage for their full version number.

InstallAware Wins Third ComponentSource Award

For the third year in a row, InstallAware has won ComponentSource’s Best-Selling Publisher Award. Thank you for your support – we couldn’t have done this without you!

What’s the secret to our success?

o The Bleeding Edge: Tired of waiting for weeks, months, and sometimes even years for updates from your installation technology vendor? InstallAware has built a track record of being the first to support new releases of Windows, .NET, and SQL Server – within 48 hours, if not less!

o Broadest Platform Support: Losing business to ever stranger installer errors reported by your frustrated customers trying to deploy your product? The same InstallAware setup binary runs out-of-the-box on Windows 95 Gold through Windows Server 2012, guaranteeing bullet-proof installations every time.

o Embrace and Extend Windows Installer: Feeling confined to a straitjacket by the limitations of Windows Installer? Transcend all limitations using InstallAware‘s Native Engine, even switching at runtime between the Windows Installer and the Native Engine with a single line of code.

o Code-Generating IDE: Does your setup project give you a sense of what trying to build a Concorde with a sledgehammer feels like? InstallAware‘s IDE generates code in the background, letting you drop-down to the exact area of your setup script you need to customize with precision targeting.

o Web Integration: Do your efforts in web-enabling your setups and publishing web updates induce strong headaches? InstallAware‘s Partial Web Deployment and Triple-Mode Web Updates are so well-designed, you’ll be wondering how you ever managed to live without them!

Discover InstallAware and the beauty of simplicity – InstallAware is built by developers for developers, and it shows. We’re confident you’ll agree.

List of Bug Fixes in InstallAware 15.51 (57)

The setup engine failed to correctly persist the 32 bit/64 bit state of the installation when persistent variables were used.

The Install Service command editor window, in the Service Groups tab, incorrectly suggested that variables were disallowed.

The setup engine failed to initialize on Windows 2000 (Windows NT 5.0).

Under rare combinations of SD card reader hardware and drivers, the setup engine occasionally displayed initialization errors that could be safely dismissed.

Uncompressed Native Engine setups running from read-only media such as CDs, DVDs, HD-DVDs, and Blu-Ray discs failed to clear the read-only attribute on files copied to destination folders.

The Get Folder Location command Folder setting was displayed incorrectly for three locations in the command editor and the MSIcode script.

The pre-defined variable SFXPATH was occasionally being incorrectly initialized to the wrong folder, together with its co-dependent variables.

The WordWrap property of the CheckBox and RadioButton controls were forcibly being set to FALSE at runtime.

The Get Folder Location command Folder setting was displayed incorrectly for the majority of selections in the command editor and the MSIcode script.

Command line builds could not override the value of the NOEXE compiler variable if it was defined at the project level settings.

A Native Engine installation would miss current version Native Engine per-user installations if previously uninstalled per-machine installations were present on the target system.

Registry self-registration data import failed when new lines were found in registry data.

The Register Assembly command failed to locate .NET 4.x assemblies in the GAC.

Pinning shortcuts created duplicate pins if they were previously pinned.

Visual designer code generation did not check if code was commented out before emitting new statements in standard code regions.

Visual designer code generation occasionally emitted multiple redundant sections of code.

The assemblies design view occasionally displayed incorrect check-box states when check-boxes were in a disabled state.

MSIcode command editor windows did not provide alphabetical sorting to variables, component names, and other similar sortable elements.

The InstallAware setup loader dialog had visual artifacts at corners of the setup loader progress bar when running under the Aero Basic theme.

The InstallAware IDE did not save the minimization state of the ribbon toolbar.

Calling Apply Install twice with pinned shortcuts occasionally caused duplicate pins for the same shortcuts.

Automatic elimination of double-backslashes was not applied to Write Registry commands when running under the Native Engine.

A Native Engine installation would miss older version Native Engine per-user installations if previously uninstalled per-machine installations were present on the target system.

A memory leak in the automation interface caused Visual Studio 2003, Visual Studio 2005, and Visual Studio 2008 Add-Ins to fail.

The Native Code Setup Engine failed to update system files when it was not possible to obtain original file permissions successfully.

PackageAware failed to scan protected system files when it was not possible to obtain original file permissions successfully.

Microsoft SQL Server database connections occasionally returned incorrect error codes when the server could not be reached.

Delete Files Recursive did not delete files that were protected by the system.

.NET 4.x support was not available in the .NET Plug-In Bridge.

Complex passwords rarely caused setup script corruption.

The .NET 4.5 runtime installation was erroneously triggered based on .NET 4.0 availability.

The .NET 4.5 runtimes failed to extract on 64 bit operating systems with web builds.

The .NET 4.5 runtimes failed to install with single file builds.

The InstallAware version compiler variable was misreported as 14.00.

The InstallAware self-extractor failed to extract files which transcended the MAX_PATH file length limitation.

The Web Media Block extraction mechanism failed to extract files which transcended the MAX_PATH file length limitation.

PackageAware did not pick up changes made to the file system and registry in protected areas.

PackageAware snapshot comparisons were too slow.

Adding Web Updates to a project did not automatically add built-in web update dialogs.

Progress bars flickered on Vista and newer Windows operating systems.

Set Access Control did not apply permissions to 64 bit registry hives.

The Dialog Editor did not prompt to save an open document when the control tab order or control properties were changed.

The IDE did not import 64 bit COM Server self-registration data.

Scheduled Web Updates did not work with the Native Code Setup Engine.

.NET 3 runtimes did not install on Windows 8.

.NET 2 runtimes did not offer to retry failed downloads on Windows 8.

Paths were not automatically converted to use global system variables after COM Server self-registration data captures.

In rare instances, the built-in Web Update script faulted with division by zero errors.

The help documentation was out of date for non-scheduled web update modes.

The Native Code Setup Engine did not properly restore original system permissions when attempting to update files and registry keys.

The Native Code Setup Engine failed to update file system and registry areas with protected system permissions.

The setup engine failed under odd combinations of user accounts with Unicode names and various system locales for non-Unicode programs.

The InstallAware setup did not offer to download .NET 2.x runtimes again on Windows 8 upon failure due to poor network conditions.

The Native Code Setup Engine failed to write to the system32 folder when running in 64 bit mode on 64 bit operating systems starting with Windows Vista.

The Create Virtual Folder command failed to bind the requested version of ASP.NET when running on a 64 bit version of Windows Server 2003.

The File Bag plug-in failed to copy files when doing builds with file system paths exceeding 256 characters.

The Group Policy Wizard generated MSI files failed to run under all odd combinations of Unicode user account names and system locales for non-Unicode programs.