Before any packaging starts, a packaging environment should be prepared. As a rule, a packaging environment should be virtual, and the reasons for this will be covered later in this article. Conditionally, we can differ the packaging environments by several criteria:

By a packaging technology. A packaging technology defines a set of tools, which should be preinstalled on a packaging client. The following tools are recommended but MSI packaging process is not limited to them, and it possible to use other software:

Tool

Description

PACE Suite

  • MSI Generator
  • MSI Editor
  • Docu Generator
A powerful toolset for almost all packaging needs (MSI/App-V/ThinApp)

Sysinternals Suite (the most required tools)

  • PsExec
  • ProcMon
  • ProcExp

Download

PsExec – command line tool that we will use to start cmd.exe console under built-in system account. This account is usually used in most deployment systems to deploy software.

Process Monitor (procmon.exe) – this tool can be used for analysis of application/installation behavior and it helps to understand the causes of certain application/installer activities.

Process Explorer (procexp.exe) – this tool shows the process tree and helps to understand what child processes are created by an application or an installer.

Some double panel file manager (optional)

  • Total Commander
  • Far Manager
  • Unreal Commander
  • Double Commander
  • Free Commander
  • Etc.

A convenient tool to work with the files during packaging. It has numerous plugins, which can help to work with ftp, archives, editors etc. This is absolutely not a required tool – the choice depends on the demands of each engineer.

By purpose. The two main purposes are:

Packaging. For this purpose, we need to have as clean OS as possible, with a minimal number of preinstalled software. For these needs, it is better to use the OS right after it has been installed, and a minimal set of packaging tools. This is necessary in order to minimize the impact of a third-party software on the packaging process, as well as to identify the possible software dependencies and correctly handle them.

Testing. This environment should be as similar to the end-user environment as possible. It would be better to use a virtual image utilized in the end-user environment where the package will be installed.

After the packaging environment is prepared, the packaging process can start.

The first thing a packaging engineer should do before the actual packaging is the Incoming Check. During this process, the following investigation should be conducted:

  1. Check package sources availability. The discovery document and application sources should be available and copied to the packaging workstation. The best practices for creating discovery documentation will be covered in a separate blog article.
  2. All instructions in the discovery document should be clear and reproducible with given software sources.
  3. After successful installation, an application should also be successfully launched and all required configuration should be available.
  4. Installation should be evaluated in accordance with the estimation complexity matrix. This document is a kind of a questionnaire that contains the objective characteristics of the future package, such as the number of files, registry entries, the size of the installed application, controlled services or drivers, dependencies, etc. Alternatively, you can use PACE Suite where complexity estimation report is one of the features. According to the estimation, we can determine approximate complexity of the packaging and based on the estimated complexity, we can roughly determine the amount of time that will be needed to spend on packaging. This assessment can be used to forecast and assess the packaging costs.
  5. If during one of these stages there are some ambiguities, a packaging engineer should immediately clarify the issues with the software owner or the customer. This is very important to clarify all issues as early as possible to save time on bug fixing in the future.

When everything is clear, a packaging engineer can proceed to the actual packaging.


In case you are looking for an application packaging and virtualization tool, we invite to you to learn more about PACE Suite: https://goo.gl/tP3mkK Apart from complexity estimation, it offers advanced MSI editing capabilities, package validation and testing, and numerous other application packaging features.

About the author

Dmitry Puzanov is an experienced IT specialist, a leader of Infopulse application packaging team and an analyst in the packaging sphere with 10+ years of experience in support engineering, networking, software installation development, and IT management.