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.