Application Packaging

Welcome to part one of a three part series on application packaging in the enterprise. This post will cover what application packaging is, why we package applications and an overview of how we package applications. Parts two and three will cover the different methods of packaging in-depth, application virtualisation, as well as covering some handy tips on overcoming common packaging issues.

**What is application packaging?**

Application packaging is the process of modifying software installers to perform a consistent, repeatable install and uninstall. Vendor software installers usually come in two flavours, Windows Installer packages (.msi) or executables (.exe) and can be modified using a number of different methods, which we will go into in a later post. These packages are usually designed to perform the install and uninstall silently and can be crafted to follow company standards such as removing desktop shortcuts and preventing automatic updates.

**Why do we package applications?**

Application packaging is done for a number of reasons depending on the target environment. For instance, software Vendors selling applications to clients will package applications in a different manner and for different reasons than enterprise customers, looking to deploy software to thousands of workstations country wide.

Although packaging for consumer distribution covers some of the same ground as enterprise deployment, it is not what we are here for. Below are the main reasons, with a brief description for packaging in an enterprise environment:

• Silent Install / Uninstall

The ability to silently install and uninstall applications is critical for deploying applications remotely. It removes the requirement for a user or IT staff to follow the install prompts clicking next. It’s also important for a good user experience, nobody wants to be interrupted in the middle of writing an email with a prompt to install an application.

• Disabling Automatic Updates

This is important for businesses where users do not have permission to install applications locally. This is because in the majority of instances, application driven upgrades when run under the standard user context will result in errors. It also has a negative impact on the user experience as above. It is important for enterprise customers, so they can maintain version control of applications within the environment.

• Application Customisation

Packages can be created so they adhere to business standards such as removing shortcuts from the desktop. It’s a good idea to also customise applications for regional preferences like A4 / Legal paper size and Kilometres / Miles.

• Consistent Deployments

Having an installation automated removes inconsistencies in the install process, this in turn leads to a consistent user experience and easier support as there is a known state the application should be in.

• Resilience (.msi only)

When an application is packaged and deployed as a .msi it can be created with a measure of built-in resilience. If a file (known as a component in Windows Installer talk) is changed or deleted, the application will perform a self-heal and reinstall the correct file.

**What are the main methods to package applications?**

The methods for packaging an application are defined by the type of application being packaged, .msi or .exe. Here are the main ways to package each type at a high level:

• Packaging .msi applications

Vendors usually supply a list of custom properties that can be applied to .msi’s via a command line or with a Microsoft Installer Patch file (.msp) that modifies the base package and instructions on how to implement these. If they don’t, the Windows Installer command line syntax can be found by pressing Windows + R and typing msiexec.exe into the Run window.

![Figure 1 Windows 10 Enterprise Build 9841_September 2014 – Start Menu]( http://www.thomasduryea.com.au/wp-content/uploads/2015/05/windows_installer_arguments-rev-2.png)

**Windows Installer Command Line Syntax*

• Packaging .exe applications

Again, hopefully Vendors will supply a list of command line switches and how to implement them. If this is not the case, running the executable from the command line with a trailing /s will often perform a silent install. In other cases you may need to create an answer file and reference that from the command line.

![Figure 1 Windows 10 Enterprise Build 9841_September 2014 – Start Menu]( http://www.thomasduryea.com.au/wp-content/uploads/2015/05/Setup-exe-with-silent-switch.png)

**Setup.exe with Silent Switch*

We will go through packaging .msi and .exe applications for enterprise deployment in detail in part two of this series.