application packaging with pace suite 3 - infopulseinfopulse.com/global/pace/application packaging...
TRANSCRIPT
© 2014 Infopulse pacesuite.com
Application Packaging
with PACE Suite 3.3
Training Program
Application Packaging with PACE Suite Page 2 of 102
© 2014 Infopulse pacesuite.com
CONTENTS
INTRODUCTION ............................................................................................................................... 6
1 WINDOWS INSTALLER OVERVIEW ............................................................................................. 7
1.1 Chapter Objectives ....................................................................................................................... 7
1.2 About Windows Installer ............................................................................................................. 7
1.3 Comparing Installation Technologies........................................................................................... 7
1.4 Obtaining .MSI files ...................................................................................................................... 8
1.5 Advantages of Windows Installer ................................................................................................ 8
1.6 How does self-repair work? ....................................................................................................... 10
1.7 About Logo Certification ............................................................................................................ 10
1.8 About the Windows Installer service ......................................................................................... 11
1.9 Installing the service .................................................................................................................. 12
1.10 Advertising ................................................................................................................................. 12
1.11 Overview of Windows Installer .................................................................................................. 13
1.11.1 Installation Package ............................................................................................................ 14
1.11.2 Components and Features ................................................................................................. 14
1.11.3 Installation Mechanism ...................................................................................................... 15
Acquisition ...................................................................................................................... 15
Execution ........................................................................................................................ 15
Rollback ........................................................................................................................... 15
1.11.4 Component Management .................................................................................................. 16
1.11.5 Advertisement .................................................................................................................... 18
Platform Support of Advertisement ............................................................................... 18
Remarks .......................................................................................................................... 18
1.11.6 Installation-On-Demand ..................................................................................................... 19
1.11.7 Resiliency ............................................................................................................................ 19
1.11.8 Customization ..................................................................................................................... 19
2 APPLICATION PACKAGING APPROACHES .................................................................................. 21
2.1 MSI repackaging ......................................................................................................................... 21
2.2 Vendor MSI transforming .......................................................................................................... 21
2.3 Legacy setup wrapping .............................................................................................................. 21
2.4 Virtualization .............................................................................................................................. 21
3 PACE SUITE OVERVIEW ............................................................................................................. 22
3.1 MSI Generator ............................................................................................................................ 22
3.1.1 Home screen ....................................................................................................................... 23
3.1.2 Project editing screen ......................................................................................................... 23
3.2 MSI Editor ................................................................................................................................... 24
3.3 App-V Generator ........................................................................................................................ 24
3.4 Docu Generator.......................................................................................................................... 25
4 THE INSTALLING AND CONFIGURING PACE SUITE ...................................................................... 26
Application Packaging with PACE Suite Page 3 of 102
© 2014 Infopulse pacesuite.com
4.1 System Requirements ................................................................................................................ 26
4.2 Prerequisites .............................................................................................................................. 26
4.3 Installation ................................................................................................................................. 26
4.3.1 Using portable distributive (ZIP) ......................................................................................... 26
4.3.2 Using installer (MSI) ............................................................................................................ 27
4.4 Configuring MSI Generator ........................................................................................................ 30
4.4.1 MSI Profiles ......................................................................................................................... 31
Managing MSI Profiles .................................................................................................... 31
MSI Profile Settings ......................................................................................................... 31
4.4.2 Resource Filters .................................................................................................................. 37
Managing Resource Filters ............................................................................................. 38
Editing a Resource Filter ................................................................................................. 38
4.4.3 Settings ............................................................................................................................... 39
Packages folder ............................................................................................................... 39
Snapshot settings ............................................................................................................ 40
5 MSI GENERATOR ...................................................................................................................... 41
5.1 Creating a new Project ............................................................................................................... 41
5.1.1 Repackaging or Tailoring (creating a Response Transform) ............................................... 41
5.1.2 Preparation ......................................................................................................................... 41
5.1.3 Choose a repackaging method ........................................................................................... 41
5.1.4 Create First Snapshot.......................................................................................................... 42
5.1.5 Install and Configure your Application ............................................................................... 43
Filters .............................................................................................................................. 44
Detected MSI & log ......................................................................................................... 44
5.1.6 Create Second Snapshot ..................................................................................................... 44
5.1.7 Starting from a Blank Project .............................................................................................. 45
5.2 Editing a Project ......................................................................................................................... 46
Application information .................................................................................................. 47
Files and Registry ............................................................................................................ 48
Environment variables .................................................................................................... 50
Services ........................................................................................................................... 50
Printers ........................................................................................................................... 51
Permissions ..................................................................................................................... 51
Shortcuts ......................................................................................................................... 53
Properties ....................................................................................................................... 53
5.2.1 Building a Package .............................................................................................................. 54
Output Folder ................................................................................................................. 57
MSI Generator Project .................................................................................................... 57
Package Creation Log ...................................................................................................... 57
Locked or Missing Files ................................................................................................... 57
5.3 Opening an existing Project ....................................................................................................... 58
6 MSI EDITOR .............................................................................................................................. 60
Application Packaging with PACE Suite Page 4 of 102
© 2014 Infopulse pacesuite.com
6.1 Basic and advanced operations ................................................................................................. 60
6.1.1 Creating new package ........................................................................................................ 60
6.1.2 Opening .............................................................................................................................. 60
6.1.3 Saving and generating a trasform ...................................................................................... 61
6.1.4 Compiling ............................................................................................................................ 61
6.1.5 Importing registry ............................................................................................................... 61
6.1.6 Importing files and folders ................................................................................................. 62
6.1.7 Adding, Dropping and Importing tables ............................................................................. 64
6.1.8 Active Scripting ................................................................................................................... 66
6.1.9 Find/Replace ....................................................................................................................... 68
6.2 Application Information ............................................................................................................. 69
6.3 Files ............................................................................................................................................ 69
6.4 Registry ...................................................................................................................................... 70
6.5 Shortcuts .................................................................................................................................... 70
6.6 Features and Components ......................................................................................................... 71
6.7 Custom Actions .......................................................................................................................... 71
6.7.1 Viewing and managing actions ........................................................................................... 72
Views ............................................................................................................................... 72
Actions list ....................................................................................................................... 72
Sequence ........................................................................................................................ 72
Filtering ........................................................................................................................... 73
6.7.2 Creating an editing custom actions .................................................................................... 73
Creating ........................................................................................................................... 73
Options of an action ....................................................................................................... 74
6.8 Properties ................................................................................................................................... 75
6.9 Table Editor ................................................................................................................................ 76
6.9.1 Row References .................................................................................................................. 76
6.9.2 Undo-redo stack ................................................................................................................. 77
6.9.3 Smart Field editing .............................................................................................................. 77
GUID Editing .................................................................................................................... 77
Numeric Editing .............................................................................................................. 78
Masked Attributes Lookup ............................................................................................. 78
Lookup ............................................................................................................................ 79
Special Lookups .............................................................................................................. 80
IntelliSense editing ......................................................................................................... 81
7 APP-V GENERATOR................................................................................................................... 84
7.1 Standalone sequencing of a new application ............................................................................ 84
7.1.1 Starting................................................................................................................................ 84
7.1.2 Create First System Snapshot ............................................................................................. 85
7.1.3 Install and Configure the Application ................................................................................. 85
7.1.4 Create Second System Snapshot ........................................................................................ 86
7.2 Editing App-V package ............................................................................................................... 86
7.2.1 Package options .................................................................................................................. 86
Application Packaging with PACE Suite Page 5 of 102
© 2014 Infopulse pacesuite.com
7.2.2 Files and Registry ................................................................................................................ 87
7.2.3 Virtual Services ................................................................................................................... 88
7.2.4 OSD Files ............................................................................................................................. 88
7.2.5 Advanced features .............................................................................................................. 90
Properties Inspector ....................................................................................................... 90
Actions Pool .................................................................................................................... 92
7.2.6 Opening and Saving Packages ............................................................................................ 93
Saving a package ............................................................................................................. 93
Opening a package ......................................................................................................... 93
8 DOCU GENERATOR ................................................................................................................... 94
8.1 Launch Docu Generator and Start Recording ............................................................................ 94
8.2 Control Recording ...................................................................................................................... 94
8.3 Take Screenshots ....................................................................................................................... 95
8.3.1 Window/Smart area screenshot ........................................................................................ 95
8.3.2 Custom area screenshot ..................................................................................................... 95
8.4 Manage Screenshots .................................................................................................................. 95
8.5 Add Annotations ........................................................................................................................ 95
8.6 Save results ................................................................................................................................ 96
8.7 Use Document Templates .......................................................................................................... 97
9 QUALITY ASSURANCE WITH PACE SUITE ................................................................................... 98
9.1 Validate against Windows Installer requirements .................................................................... 98
9.2 Verify against your packaging requirements ............................................................................. 99
9.3 Test package functionality ......................................................................................................... 99
9.3.1 Create a snapshot before installation .............................................................................. 100
9.3.2 Install and then uninstall the Application Package .......................................................... 101
9.3.3 Create a snapshot after uninstallation ............................................................................. 101
9.3.4 Compare Snapshots and review resource consistency .................................................... 101
9.4 Test application functionality .................................................................................................. 101
APPENDIXES ................................................................................................................................. 102
1. Appendix A. Sample applications for packaging ...................................................................... 102
Application Packaging with PACE Suite Page 6 of 102
© 2014 Infopulse pacesuite.com
Introduction
This document is a step-by step guide that will help you to learn how to use Infopulse PACE Suite to perform
different tasks related to application packaging.
The program also covers the basics of Windows Installer technology.
Application Packaging with PACE Suite Page 7 of 102
© 2014 Infopulse pacesuite.com
1 Windows Installer Overview
This chapter provides an introduction to Windows Installer, its framework and the background you need to get
started with Windows Installer.
1.1 Chapter Objectives
Define Windows Installer
Discuss why learning Windows Installer is important for you.
Explain how Windows Installer reduces total cost of ownership.
Identify benefits Windows Installer will have on your installation.
1.2 About Windows Installer
In order to create a streamlined process for installing and managing applications, Microsoft developed the
Windows Installer service. It consists of a set of guide lines, an Application Programming Interface (API) and a
runtime service to help make application installation and ongoing management part of the basic Windows
system services. The Windows Installer service is not an installation-authoring tool, but rather an installation
engine and rule set for installation packages.
The Windows Installer engine resides on the destination computer as part of the operating system. The
executable – msiexec.exe – reads the installation database (.MSI) and performs the installation and also
performs any subsequent management, such as self-repair, that becomes necessary.
Instead of an installation executable (such as setup.exe), your installation is in the form of a database file, of
type .MSI, which contains instructions and can also enclose installation files. Because this database uses highly
structured, uniform data tables, there is 100% accountability of where each file is installed and through a log of
which files belong to which applications. Because of this, individual files can readily be restored to repair
damaged applications.
Each table is dedicated to a particular type of installation information such as Class, Components, Features,
Files, Execution Sequence and Registry. Certain logic is built into the Windows Installer engine, such as when to
prompt for a reboot, disk space checking and file version replacement rules. When an .MSI is opened,
msiexec.exe reads the data stored in the database and builds an internal script to follow. It then performs the
actions in the script to complete the installation. If the installation fails, Windows Installer contains functionality
to roll back the machine to its previous state.
1.3 Comparing Installation Technologies
Prior to the introduction of Windows Installer, every software application had its own setup executable file
(usually setup.exe or install.exe). Although many software manufacturers used common installation tools many
others resorted to highly proprietary installation technologies. Not only did this make the user’s experience
inconsistent from one installation to the next, but the operating system had to contend with redundant code in
the various applications. Because of this lack of uniformity, there was no way to administer the applications
after they were installed; except to rerun the whole setup program.
Application Packaging with PACE Suite Page 8 of 102
© 2014 Infopulse pacesuite.com
Windows Installer solves this problem by implementing a single built-in execution engine. When this engine is
installed on a system, the role of the installation executable is replaced by a database file that contains all of the
program files and setup instructions. The database stores the information for the application, and can readily
access this information if the application requires rollback, self-repair or other maintenance.
1.4 Obtaining .MSI files
Many installations you receive contain .MSI files. These can come from different sources.
Vendor supplied – a company or individual outside your organization might provide you with a complete
.MSI installation. You can customize, run, or deploy the .MSI installation to users based on your
organization’s needs.
Author – if you are a developer, you might create an .MSI installation to meet your organization’s needs.
Repackage – an application might be repackaged into an .MSI installation. As a system administrator,
you can convert the .MSI application to another format.
1.5 Advantages of Windows Installer
There are many advantages to using Windows Installer. These advantages result in a solid, more robust
installation that can reduce the total cost of ownership (TOC) for your organization. A major advantage of using
Windows Installer to create or deploy software is that it enables compliance with the Windows logo program.
Because Windows Installer is part of the operating system, it provides features not available in traditional
software distribution technologies.
Advertisement – also called install-on-demand. Windows Installer gives you the ability to set features
to be advertised. Advertised features are not actually installed, but they appear installed to the user.
When the user invokes an advertised feature, installation of the feature occurs.
Componentization – Windows Installer gives you the ability to divide your installation into smaller,
more manageable parts. These parts are called components. Components give you more control over
application resources during installation setup and runtime. Windows Installer uses components for
repair
Standardization – Windows Installer has global rules it applies to every file installed with an application.
These rules look at a file’s version and its shared DLLs to prevent conflicts between applications
Version Rules –Windows Installer uses version rules to decide whether to install a file to a directory or
not. The rules look at the file’s date, language and whether the file is versioned, the modified date on a
non-versioned file, and the highest version of the file
Reference counting – To track DLLs shared among components, (from different installations) Windows
Installer uses reference counters. The reference count occurs both at the component level and in the
registry for the component’s key file. At the registry level, Windows Installer counts the number of times
a DLL is installed or removed.
Customization – You can customize installations to users’ needs by creating transforms. Transforms
apply changes to a Windows Installer installation in order to tailor the installed application to the needs
of a particular group of users.
Assignment – you can use the user’s profile to place applications either advertised or installed on the
destination machine. An administrator sets applications in a user’s profile and when the user logs in to
the destination machine, the designated applications are placed on the machine. With assignment, the
users have no control over the applications they receive. You must have Active Directory or another
Application Packaging with PACE Suite Page 9 of 102
© 2014 Infopulse pacesuite.com
distribution tool for this to work. It also works in a locked down environment by using elevated
privileges.
Publishing – As an administrator, you can publish applications to the Programs and Features applet
(Add/Remove Programs). The advertising attributes for the applications in Programs and Features are
stored in Active Directory and are not placed on a user’s machine unless the user installs the application.
Publishing lets the user decide whether to install the published applications.
Open Architecture – Windows Installer’s open architecture gives you the ability to create custom
solutions that add value to your projects. The architecture contains a standard, consistent set of
guidelines that provide integrity for every installation and allow you to choose best of breed authoring
software.
Total Cost of Ownership – Windows Installer makes installations easier to install, maintain and support
for your customers. This reduces the time you spend assisting the customer, and reduces the time they
need to spend troubleshooting the application installation.
Rollback – Windows Installer installations are transactional. Because each process is a transaction, when
one of the processes in the installation fails, Windows Installer reverts to the installation’s previously
installed state. Rollback prevents you from having an incomplete or broken application.
Dynamic Source List – A source list provides source resiliency for features that are installed-on-demand.
The list contains all of the locations in which Windows Installer searches for an application’s source files.
Windows Installer adds the most recently used directory to the source list, then goes to that source first
the next time it needs to install files. Windows Installer updates the list automatically whenever features
are added to an installation.
Self-healing – also called automatic repair, is the ability of the application to repair missing components
such as files or registry entries. When you start an application, Windows Installer checks a list of key
paths. If any broken key paths – e.g. missing files or registry entries – are found, Windows Installer
repairs the application.
Group Policy and Security – Windows Installer sets privileges for the installation and the user. Elevated
privileges control the user and application rights, and provide a more secure environment. Because of
elevated privileges, the application can have more privileges than a user during an installation.
User Policy – The policies that you set define the type of privileges that a user has.
System Policy – The policies you set on a per machine basis define the types of privileges that the
machine has. This gives you the ability to run an entire installation in elevated privileges and define only
those rights users have while an installation runs.
Application Packaging with PACE Suite Page 10 of 102
© 2014 Infopulse pacesuite.com
1.6 How does self-repair work?
1.7 About Logo Certification
Logo certification is what your organization earns when your application and installation comply with the
rigorous Microsoft Application Specification for Windows. Passing these specifications qualifies your
organization to license and use the Certified for Microsoft Windows logo. Logo certification increases your
confidence with your application and installation, and gives your customers confidence in the application and
installation. Microsoft offers logo certification to establish a consistent set of standards for installations. This
helps developers and customers alike know an application and installation work reliably and are manageable.
Whether you choose to use the logo or not, we recommend applying the Application Specifications for Windows
standards to your application and installation. Testing enables you to identify and troubleshoot issues in the
application and installation before they are deployed. Deploying or distributing a thoroughly tested application
and installation means fewer help desk calls and less time spent troubleshooting issues when someone is trying
to use the application or installation.
You can run the Application Specification test yourself to ensure the application and installation meet the
validations. While this is useful, Microsoft requires more extensive testing for your application and installation
Are any key paths in the entry point
feature or its parents missing or
corrupted?
Windows Installer checks all key paths in entire
application
The original entry point feature with broken key path get a feature-level repair (entire feature is reinstalled not just the broken component)
If broken key paths are found elsewhere in the
installation, each component with a
broken key path gets a component-level repair
(component only is repaired)
Entry point is invoked. Entry points are tied to key
paths. For instance, a shortcut might be tied to an
.EXE, which is a key path.
Windows Installer checks all the key paths in the
components under the entry point feature, as well as
components in the feature’s parent and all the way to
the top feature
Application opens
Application opens
Application Packaging with PACE Suite Page 11 of 102
© 2014 Infopulse pacesuite.com
before your organization can use the Windows logo. They require that VeriTest, an independent testing
organization, test your application and installation for compliance against all Microsoft application standards.
Foremost VeriTest’s testing is to ensure your application and installation install successfully and without errors
on all Windows operating systems and Windows .NET Server 2003. Validating your application and installation
with the Application Specification for Windows XP test means verifying your application and installation have
the appropriate security, are properly configured and function properly from installation through uninstall.
There are numerous validations applications and installations must pass to meet the Application Specification
standards. Some of the most common and important validations are listed below. To learn about these
validations, see Windows Installer and Logo Requirements in the Window Installer SDK Help
Your installation is resilient and has the ability to be both functional and stable across multiple Windows
operating systems.
Your installation supports long file names and UNC paths.
Your installation automatically adds entries to the registry and can read and write information from
here. Put any information you do not want in the registry in a private .ini file in the same directory as
the application’s executable (.exe) files.
Your installation contains version checking for Windows operating systems.
Your installation passes validation using the Darice.cub and Logo.cub files. All of the Internal Consistency
Evaluators (ICEs) in Logo.cub are included in the Darice.cub file. If your package passes validation using
Darice.cub it will pass with Logo.cub
You have correctly set up and defined components in your installation.
Your installation contains the ability to track shared components and to reference count shared DLLs.
Your installation installs to the Program Files folder by default or lets the user select where to install the
application.
Your installation contains uninstall files that allow a user to remove the installation using the Programs
and Features applet.
Your installation contains and supports advertising.
Your installation has the ability to install, uninstall and self-repair.
Your installation can isolate components.
Your installation follows Windows Installer security standards and can stop installation gracefully it the
user is denied access to install the application. For instance, the installation removes any installed files
when it stops the installation process.
Your installation contains the components it needs to upgrade to the next Windows operating system
version.
1.8 About the Windows Installer service
The Windows Installer service is an installation engine and rule set for installation packages. The service works
on all machines standardizing how software applications are installed and configured. In addition, the service
modifies, upgrades, repairs and removes installations. It performs these tasks through the msiexec.exe
component.
Msiexec.exe is one of the primary Windows Installer components and is the Windows Installer executable and
service. It controls how and when resources are installed and uninstalled. The msiexec.exe component is the
Windows Installer runtime and is the engine that executes the actions necessary to install an application. This
component resides locally on the end user’s machine.
Application Packaging with PACE Suite Page 12 of 102
© 2014 Infopulse pacesuite.com
The main functions of the Windows Installer service are to manage the application installation, create a
standard setup format, and use APIs so applications can manage themselves. Because Windows Installer
performs or monitors every step of a Windows Installer installation from start to finish, it can be described as an
installation agent. For example, suppose you are creating a Windows Installer installation. To adhere to
Windows Installer rules, you must add features and components to your installation and give your product a
globally unique identifier (GUID). Once your installation is complete, you run it. The Windows Installer service
executes this process with msiexec.exe. During the installation, the Windows Installer service communicates
with the database executing sequences in the order provided in the databas3e.After the sequences are finished,
Windows Installer generates a script file which contains detailed instructions for performing the installation.
Next, the Windows Installer service passes the information it needs to the appropriate process that contains
privileges to run the script. The script runs, installing the application. As this occurs, Windows Installer saves a
copy of every file and creates a rollback script in case the application cannot complete the installation. If the
application successfully installs, Windows Installer completes its service by removing the saved backup files and
the rollback script.
1.9 Installing the service
You don’t need to install Windows Installer on your computer; it is a part of the operating system if you are
running Windows XP, Windows Vista or Windows 7. To see which version was shipped with your operating
system see Released Versions of Windows Installer (http://msdn.microsoft.com/en-
us/library/windows/desktop/aa371185(v=vs.85).aspx)
You can update Windows Installer if you down load a Windows Installer redistributable. The Windows Installer
redistributable is a software update package and is made available after the release of the product that ships
with a specific Windows Installer version.
You can obtain Windows Installer 5.0 from Windows SDK for Windows 7
(http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=18950)
To determine the Windows Installer version installed on your system, call MsiGetFileVersion and set the
szFilePath parameter to MSI.dll. Other options include having an application get the version using DIIGetVersion
or calling the Version property (Installer Object), which generates the version number. In addition to the
Windows Installer version, you can determine the version of msiexec.exe by running msiexec; the version is
listed at the top in the dialog.
1.10 Advertising
Advertising, which is a way to deploy applications in large organizations, is available with windows Installer, but
only supported platforms. You can set features or entire applications to be advertised. If a feature or application
is advertised, only the entry points of the feature or application are installed. For instance, if the application
Microsoft Word is advertised to users’ computers, but not installed, the users still see the Microsoft Word icons
in the start menu and the file extension .doc is registered in the registry, but none of the files that make up
Microsoft Word are actually installed.
Entry points for advertising include:
Shortcuts and their icons
Extensions and their icons
Registered shell and command verbs
Creating COM objects
Application Packaging with PACE Suite Page 13 of 102
© 2014 Infopulse pacesuite.com
MIME support
Entry points to an installed application or feature are either visible or not visible to the user depending on what
type of advertising you specify. Assigning, a type of advertising, makes the application appear installed to the
user, because all available entry points are installed. Publishing, another type of advertising, does not populate
the user interface. Users invoke advertised items by launching a shortcut, opening a file with an advertised file
extension, or by accessing one of the other entry points. When the user invokes the entry point, installation-on-
demand of the feature or application occurs. Installation-on-demand lets installation occur dynamically while an
application is running. With previous installation technologies, if a user did not install all features of an
application during the initial installation, the user had to re-run the setup program later to access a feature not
installed initially.
You can advertise an entire application by running the installation in advertising mode. To do this, you run the
installation from the command line with the /j option. When you run an installation in this mode, all elements of
the installation that support advertising, such as shortcuts, file extensions and more, are installed as advertised.
Then, when the user invokes the application from an advertised entry point, the application is installed. The /j
option overrides any advertising options you set for individual features within the application. Following is an
example of a command line statement that runs an MSI in advertising mode (/j) for the current user (u) in quiet
mode (/q)
msiexec /ju “c:\directory\myApp.msi” /q
Advertising uses two primary means of appearing installed to a user: Windows Installer shortcuts and lnk
shortcuts. Windows Installer shortcuts are entry points to an installation and can display as icons or abbreviated
paths. They enable a user to have quick access to an installation or particular feature in an installation. By
default, Windows Installer shortcuts are advertised. In Windows Installer shortcuts, the target field is disabled. A
lnk shortcut creates a non-advertised shortcut unless the interface, IShellLink, supports Windows Installer
Descriptors.
1.11 Overview of Windows Installer
Windows Installer reduces the total cost of ownership (TCO) for your customers by enabling them to efficiently
install and configure your products and applications. The installer can also provide your product with new
capabilities to advertise features without installing them, to install products on demand, and to add user
customizations.
The following sections provide a high-level overview of the installer:
Installation Package
Components and Features
Installation Mechanism
Component Management
Advertisement
Installation-on-demand
Resiliency
Customization
Note This section is based on information from:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa370566(v=vs.85).aspx
Application Packaging with PACE Suite Page 14 of 102
© 2014 Infopulse pacesuite.com
1.11.1 Installation Package
An installation package contains all of the information that the Windows Installer requires to install or uninstall
an application or product and to run the setup user interface. Each installation package includes an .msi file,
containing an installation database, a summary information stream, and data streams for various parts of the
installation. The .msi file can also contain one or more transforms, internal source files, and external source files
or cabinet files required by the installation.
Application developers must author an installation to use the installer. Because the installer organizes
installations around the concept of components and features, and stores all information about the installation in
a relational database, the process of authoring an installation package broadly entails the following steps:
Identify the features to be presented to users.
Organize the application into components.
Populate the installation database with information.
Validate the installation package.
The next section discusses installer components and features. For more information, see Components and
Features. The choice of features is commonly determined by the application's functionality from the user's
perspective.
It is recommended that developers use a standard procedure for choosing components. For more information,
see Organizing Applications into Components.
Package authors can use third-party package creation tools, or a table editor and the Windows Installer SDK, to
populate the installation database. All installation packages need to be validated for internal consistency. For
more information, see Package Validation.
1.11.2 Components and Features
The Windows Installer organizes an installation around the concepts of components and features.
A feature is a part of the application's total functionality that a user may decide to install independently. For
more information, see Windows Installer Features.
A component is a piece of the application or product to be installed. The installer always installs or removes a
component from a user's computer as a coherent piece. Components are usually hidden from the user. When a
user selects a feature for installation, the installer determines which components must be installed to provide
that feature. For more information, see Windows Installer Components.
Authors of installation packages need to decide how to divide their application into features and components.
The selection of features is primarily determined by the application's functionality from the user's perspective.
Because components commonly must be shared across applications, or even across products, it is
recommended that authors follow a standard method for selecting components. For more information, see
Organizing Applications into Components.
Application Packaging with PACE Suite Page 15 of 102
© 2014 Infopulse pacesuite.com
1.11.3 Installation Mechanism
There are two phases to a successful installation process: acquisition and execution. If the installation is
unsuccessful, a rollback phase may occur.
Acquisition
At the beginning of the acquisition phase, an application or a user instructs the installer to install a feature or an
application. The installer then progresses through the actions specified in the sequence tables of the installation
database. These actions query the installation database and generate a script that gives a step-by-step
procedure for performing the installation.
Execution
During the execution phase, the installer passes the information to a process with elevated privileges and runs
the script.
Rollback
If an installation is unsuccessful, the installer restores the original state of the computer. When the installer
processes the installation script it simultaneously generates a rollback script. In addition to the rollback script,
the installer saves a copy of every file it deletes during the installation. These files are kept in a hidden, system
directory. Once the installation is complete, the rollback script and the saved files are deleted. For more
information, see Rollback Installation.
Application Packaging with PACE Suite Page 16 of 102
© 2014 Infopulse pacesuite.com
1.11.4 Component Management
The Windows Installer reduces the total cost of ownership (TCO) of your applications by increasing the ability of
your customers to manage and maintain application components during setup and run time. The installation
database tracks which applications require a particular component, which files comprise each component,
where each file is installed on the system, and where component sources are located. This allows developers to
author packages that provide the following benefits:
Increased resiliency of applications. Use the installer to detect and reinstall damaged components
without having to rerun setup. The installer checks the path of a component at run time. This frees
applications from dependency on static file paths which commonly differ between computers and can
point to missing components. For more information, see Resiliency.
Installation-On-Demand. This feature set is not installed during setup but is specified in the database to
be installed just-in-time for use if required by the application in the future. Users do not need to rerun
setup. For more information, see Installation-On-Demand.
Advertisement of shortcuts to features, applications, or entire products in the user interface. Users can
install these on-demand by using the shortcuts. Users can also remove features, applications, or entire
products on-demand. For more information, see Advertisement.
Installation customization. An administrator can apply transforms to the database that tailor the
installation for a particular group of users. For more information, see Customization.
Easier deployment of application updates. Use the installer to update your products.
Feature shortcut display. The installer displays shortcuts to features that run locally with shortcuts to
features that run remotely. Because the installation database specifies the run context of each feature,
visibly equivalent entry points can be presented to users as needed.
Keep usage metrics on features. Developers can provide an installation package that keeps usage count
of a feature by all client applications and removes components that are not being used.
Incorporate installations. Developers can incorporate the component management capabilities of the
installer into their applications by authoring an installation package and by using the Installer Functions
in their application code. The following figure illustrates an application requesting the installation of a
feature.
Application Packaging with PACE Suite Page 17 of 102
© 2014 Infopulse pacesuite.com
Application Packaging with PACE Suite Page 18 of 102
© 2014 Infopulse pacesuite.com
1.11.5 Advertisement
The Windows Installer can advertise the availability of an application to users or other applications without
actually installing the application. If an application is advertised, only the interfaces required for loading and
launching the application are presented to the user or other applications. If a user or application activates an
advertised interface the installer then proceeds to install the necessary components as described in Installation-
On-Demand.
The two types of advertising are assigning and publishing. An application appears installed to a user when that
application is assigned to the user. The Start menu contains the appropriate shortcuts, icons are displayed, files
are associated with the application, and registry entries reflect the application's installation. When the user tries
to open an assigned application it is installed upon demand.
The installer supports the advertisement of applications and features according to the operating system. The
installer registers COM class information for assigned applications beginning with the Windows 2000 and
Windows XP systems. This enables the installer to install the application upon the creation of an instance of an
advertised class. For more information, see Platform Support of Advertisement.
You can publish an application from the server beginning with the Windows 2000 Server. The published
application is then installed through its file association or Multipurpose Internet Mail Extension (MIME) type.
Publishing does not populate the user interface with any of the application's icons. The client operating system
can install a published application beginning with the Windows 2000 and Windows XP systems.
Platform Support of Advertisement
The Windows Installer supports advertisement of applications and features. The following advertisement
capabilities are available on Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista,
Windows Server 2003, Windows XP, and Windows 2000.
Shortcuts and their icons.
The Windows Installer supports advertisement of applications and features.
Extensions and their icons specified in the ProgId Table.
Shell and command Verbs registered underneath the ProgId key.
CLSID contexts and InProcHandler.
Install-On-Demand through OLE is only available programmatically through CoCreateInstance (C/C++),
and CreateObject Function (Visual Basic) or GetObject Function (Visual Basic).
Note AppId and Typelib information is only written when an advertised component is installed.
To support file name extensions, the application must be published to Active Directory by an administrator using
Group Policy.
Remarks
The installation of the product may not require a restart, but any advertised shortcuts do not work until the
machine is restarted. The advertised shortcuts of subsequent installations work without a restart. To ensure
that advertised shortcuts work correctly, the package author should schedule a forced restart at the end of the
installation. To avoid unnecessary restarts of the system, schedule a restart to run only if no version of the
Windows Installer is installed.
Conditional statements can check the ShellAdvtSupport property and Version9X property.
Application Packaging with PACE Suite Page 19 of 102
© 2014 Infopulse pacesuite.com
1.11.6 Installation-On-Demand
With traditional installation technology, it is necessary to exit an application and rerun setup to perform an
installation task. This commonly occurred when a user wanted a feature or product not chosen during the first
run of setup. This often made the process of product configuration inefficient because it required the user to
anticipate the functionality required before they ever used the product.
Installation-on-demand makes it possible to offer functionality to users and applications in the absence of the
files themselves. This notion is known as advertisement. The Windows Installer has the capability of advertising
functionality and to make installation-on-demand of application features or entire products possible. When a
user or application activates an advertised feature or product, the installer proceeds with installation of the
needed components. This shortens the configuration process because additional functionality can be accessed
without having to exit and rerun another setup procedure.
When a product uses the installer, a user can choose at setup time which features or applications to install and
which to advertise. Then if while running an application the user requests an advertised feature that has not yet
been installed, the application calls the installer to enact a just-in-time feature level installation of the necessary
files. If the user activates an advertised product that has not yet been installed, the operating system calls the
installer to enact a just-in-time product level installation.
Advertisement and Installation-On-Demand can also facilitate system management by enabling administrators
to designate applications as required or optional for different groups of users. There are two types of advertising
known as "assigning" and "publishing." If an administrator assigns an application to a group, then these users
can install the application on-demand. If, however, the administrator publishes the application to the group, no
entry points appear to these users and installation-on-demand is only activated if another application activates
the published application.
1.11.7 Resiliency
Resiliency is the ability of an application to recover gracefully from situations in which a vital component is
missing, or has been replaced by an incompatible version. By authoring an installation package and using the
Installer Functions, developers can use the Windows Installer to produce resilient applications capable of
recovering from such situations.
Use the installer's source list to increase the resiliency of applications that rely on network resources.
Use the installer's API to check whether a vital feature, component, file, or file version is installed.
Use the installer's API to check the path to a component at run time. This reduces your application's
dependency on static file paths, which commonly differ between computers.
Use the installer to reinstall damaged shortcuts, registry entries, and other components without having
to rerun setup.
Increase the resiliency of your product's installation by leaving the rollback capability of the installer
enabled.
1.11.8 Customization
Because the Windows Installer keeps all information about the installation in a relational database, the
installation of an application or product can be customized for particular user groups by applying transform
operations to the package. Transforms can be used to encapsulate the various customizations of a base package
required by different workgroups.
Multiple transforms of a base package can be applied on-the-fly during installation. This provides a mechanism
for efficiently assigning customized installations to different groups of users. For example, this would be useful
Application Packaging with PACE Suite Page 20 of 102
© 2014 Infopulse pacesuite.com
in organizations where the finance and staff support departments require different installations of a particular
product. The product can be made available to everyone in the organization by an administrative installation of
the base package to a single administrative installation point. Each work group can then automatically receive
their appropriate customization by means of an on-the-fly transform when they install the product.
Application Packaging with PACE Suite Page 21 of 102
© 2014 Infopulse pacesuite.com
2 Application Packaging Approaches
Application packaging approach is the way a source software installation is utilized to create a deployment-
ready application package. Depending on a packaging approach the type of an output package differs.
This section will help to understand the approaches and learn how to choose the best one.
The most typical application packaging approaches are the following:
MSI repackaging
Creating a transform for a vendor’s MSI
Legacy setup wrapping
Virtualization
Selection of an approach depends on different factors. Some of them are:
Type of a source installer
Complexity of an application
Any limitations caused by specific requirements
2.1 MSI repackaging
MSI repackaging means that the changes made by a source installation in a system (usually, file system and
registry) are captured and put into a newly created MSI package.
This approach guarantees fully controllable installation (no “black boxes” inside) and allows producing packages
in a highly standardized manner.
However, MSI repackaging is not recommended (and sometimes not possible) in the following conditions:
Source installation is already an MSI or contains an MSI embedded. If repackaged, a support from
application vendor or package functionality may be affected or lost. For such a situation, the
recommended approach is creating a transform.
A source installation has complicated logic. This usually implies different results of an installation on
different machines depending on conditions that cannot be fully modeled in packaging environment.
Example: machine-based licensing – an installation creates binary data that depends on specific
machine’s parameters. For such a situation, the recommended approach is legacy setup wrapping.
2.2 Vendor MSI transforming
If a source installation is already in MSI format (or contains MSI package(s) embedded) then the best option is to
try re-using it. An MSI transform should be used to adjust it to the requirements.
2.3 Legacy setup wrapping
Legacy setup wrapping means re-using the vendor’s installation mechanism just making it installable in a target
environment by means of scripting.
Complexity and specifics of legacy setup wrapping are much dependent on deployment systems and target
environment.
2.4 Virtualization
Packaging limitations and issues such as application conflicts can be eliminated with Application Virtualization
and virtualized deployment is the best choice for some applications.
Application Packaging with PACE Suite Page 22 of 102
© 2014 Infopulse pacesuite.com
3 PACE Suite Overview
This chapter gives a quick view over the components of PACE Suite and their features.
When you install PACE Suite, you’ll find four shortcuts, each representing a component of the suite.
Tool Features
Repackage any installation into an MSI or App-V package, or
transform an existent MSI.
Create and compare snapshots of system state (file system, registry
and permissions).
Edit an MSI or MST via rich interface or a table editor
Create App-V package from scratch for an application’s installer
Build an App-V package from MSI Generator project
Directly edit any App-V package (open sft or osd file)
Automatically record a consequence of actions into a document with
screenshots and annotations.
3.1 MSI Generator
MSI Generator allows to:
Repackage any installation into an MSI or App-V package, or transform an existent MSI file.
Create blank project, design a package from scratch, and build it into an MSI, MST or App-V file.
Create and compare snapshots of system state (file system, registry and permissions).
Application Packaging with PACE Suite Page 23 of 102
© 2014 Infopulse pacesuite.com
3.1.1 Home screen
Create Package – a starting point to create a new package, whether it will be repackaging, App-V, or
MST.
Open Project – open a previously created MSI Generator project for editing and build a package from it
Create Snapshot – crate a snapshot of current system state
Compare Snapshots – choose and compare any two previously created system snapshots. A result will
be fed into a new project and can be built into a package, or exported.
3.1.2 Project editing screen
Application Packaging with PACE Suite Page 24 of 102
© 2014 Infopulse pacesuite.com
When you’ve captured a new installation, or opened an existing project, the project editing screen will be
shown. Split into tabs, it allows managing all the options and contents of an output package.
Note. By doing any manipulations in MSI Generator, you actually edit the project, which is built into a package
(MSI or App-V) afterwards. When you need to edit a package directly, MSI Editor and App-V Generator come
into help accordingly.
Package type switch allows easily changing output type and re-building a package again:
3.2 MSI Editor
MSI Editor allows doing any manipulations with an MSI or MST, created with MSI Generator, or a third party
tool. Similarly to MSI Generator, it has tabs for different types of resources and setting, but in this case you edit
MSI or MST files directly.
3.3 App-V Generator
App-V Generator enables:
Creation of App-V package from scratch for an application’s installer
Building an App-V package from MSI Generator project
Editing any App-V package (sft or osd file)
Note. App-V Generator currently supports only App-V version 4.6.
Application Packaging with PACE Suite Page 25 of 102
© 2014 Infopulse pacesuite.com
3.4 Docu Generator
Docu Generator is a small tool which helps to easily record on-screen actions into a document, with screenshots,
highlights, and annotations. This is especially useful when you need to document installation steps of an
application. Output can be saved as an htm or doc file of a custom template.
Application Packaging with PACE Suite Page 26 of 102
© 2014 Infopulse pacesuite.com
4 The installing and configuring PACE Suite
4.1 System Requirements
Processor 32-bit (x86) or 64-bit (x64) processor at 2 GHz or greater
Note To repackage 64-bit applications or create 64-bit App-V packages,
use PACE Suite on a 64-bit Windows operating system.
RAM 2 GB
Hard Disk 100 MB.
Note Additional storage is required for your projects and packages and
depends on their size and quantity.
Display 1024 x 768 resolution or higher
Operating System Windows 8.1, Windows 8, Windows 7, Windows XP SP3, Windows Server
2012, Windows Server 2008, Windows Server 2003
Privileges Administrative privileges on the system
4.2 Prerequisites
Microsoft .NET Framework 4.0 or 4.5 (Included by default in latest
version of Windows)
Microsoft App-V 5.0 Sequencer (is required for App-V 5.0 functionality
only).
4.3 Installation
PACE Suite or any of its components can be installed on a computer, though this is not required. Each
component can be launched as a portable application from any folder. This allows you to bring PACE Suite to
your customer on a USB stick and package an application onsite, or run it on multiple VMs from a single network
location.
Still, if you install PACE Suite or any of its components, you’ll have it integrated into context menu of Windows
Explorer.
To enable both options, PACE Suite and each its separate component is provided in two types of distributive: ZIP
and MSI.
4.3.1 Using portable distributive (ZIP)
To use PACE Suite as a portable app, unzip its ZIP distributive into any folder and launch an exe which
correspond to the tool name:
Application Packaging with PACE Suite Page 27 of 102
© 2014 Infopulse pacesuite.com
4.3.2 Using installer (MSI)
To install PACE Suite, launch the MSI distributive, and follow the instructions on the dialogs.
Application Packaging with PACE Suite Page 28 of 102
© 2014 Infopulse pacesuite.com
Application Packaging with PACE Suite Page 29 of 102
© 2014 Infopulse pacesuite.com
Choose “Enter product key”, if you have one, or choose “Evaluate” otherwise.
Application Packaging with PACE Suite Page 30 of 102
© 2014 Infopulse pacesuite.com
4.4 Configuring MSI Generator
This section describes how MSI Generator can be customized by means of:
MSI Profiles – sets of settings and rules that are applied to output MSI packages.
Application Packaging with PACE Suite Page 31 of 102
© 2014 Infopulse pacesuite.com
Resource Filters – configurable rules differentiating application-related resources from system related
ones.
Settings of MSI Generator.
4.4.1 MSI Profiles
An MSI Profile is a set of Windows Installer specific settings and rules to be applied to an output MSI package or
transform. This includes (but not limited to):
Which MSI tables are used to handle specific types of resources (COM info, services, assemblies etc.)
Required properties, summary info details
How permissions and per-user setting are handled
MSI Profiles are useful to group settings and rules related to a specific client, platform or type of packages and
easily switch those settings.
For a specific package, an MSI Profile can be selected on the Package tab in the Project Editing window. Note
that you can change an MSI Profile and re-build your package at any time.
Managing MSI Profiles
To manage MSI Profiles, go to Settings
General tab.
Profiles Folder – a directory where MSI
Profiles are located (For example, you
can point it to a network-shared pool of
MSI profiles).
Default Option – MSI Profile to be used
by default for new projects.
MSI Creation Options – list of profiles.
You can add new, copy, edit and delete
profiles.
MSI Profile Settings
To edit settings of an MSI Profile, select its name in the list, and click the Edit button.
An MSI profile settings are mainly related to Windows Installer technology peculiarities. For more information
about any specific setting, please refer to Windows Installer in MSDN (http://msdn.microsoft.com/en-us/library/windows/desktop/cc185688(v=vs.85).aspx).
Application Packaging with PACE Suite Page 32 of 102
© 2014 Infopulse pacesuite.com
General
Basic MSI Template –MSI file used as a template to generate an output package;
MSI Compression – type of MSI files compression:
Uncompressed – package files are located in a source tree located next to the MSI file;
Compressed in Cab – package files are compressed into external CAB located next to the MSI file;
Compressed in MSI – package files are compressed into CAB placed inside the MSI. An output package
will consist of a single MSI file.
Fill in MsiFileHash table – if enabled, MSI Generator will populate the MsiFileHash table with file hash vales.
Otherwise this table will be left empty.
Check for .Net and WinSxS Assemblies - if enabled, MSI Generator will scan binary files to detect whether
assembly information is contained. Found assemblies will be handled using special MSI tables in the output
package.
Application Packaging with PACE Suite Page 33 of 102
© 2014 Infopulse pacesuite.com
Summary Info
This tab enables you to set the information which is recorded to the package Summary Information Stream.
Registry
Use MSI Advertising Tables – select tables to be used in an output MSI package or transform. The tables listed
here are used to install specific kinds of information into registry (COM servers advertising, extensions handling).
If a table is checked, then a respective kind of information will be deployed using that table. Otherwise,
information will be installed via the Registry table.
Application Packaging with PACE Suite Page 34 of 102
© 2014 Infopulse pacesuite.com
Shortcuts
Exclude Desktop/Quick Launch/Uninstall shortcuts – select whether a respective kind of shortcuts should be
excluded by default. Please note that matching shortcuts are just excluded (and can be included back on the
Shortcuts tab), not deleted completely.
Advertising Shortcuts – adjust whether shortcuts will be advertising (supporting Windows Installer Advertising,
Self-Healing and Installation-On-Demand):
All Shortcuts – all shortcuts are advertising;
Executables Only – only shortcuts launching executable files are advertising;
None – all shortcuts are regular (non-advertising).
Shortcuts Exclusions – Rules which matching shortcuts are detected based on – configurable using Regular
Expressions (http://msdn.microsoft.com/en-us/library/az24scfc.aspx).
Application Packaging with PACE Suite Page 35 of 102
© 2014 Infopulse pacesuite.com
Properties
Use this tab to pre-define the list of MSI properties that will be added to an output MSI package or transform
(via Property table).
Per-User Data
User-Part Feature/Component Name – specify how a feature and components containing per-user resources
are to be named. Special naming of such features and components is useful when working with a package, and
often is required by clients.
Three other switches allow managing how user data and folders are handled.
Application Packaging with PACE Suite Page 36 of 102
© 2014 Infopulse pacesuite.com
Merge Modules
Scan project file for Merge Modules defines whether resources of a package are looked up in a merge module
pool. Matching resources will be prompted to be replaced with corresponding merge modules
Merge module pools defines the folders merge modules to be located in, if Scan project file for Merge Modules
is enabled. Multiple pools can be added.
Permissions
On this tab, you can define how permissions are set by an output package.
Application Packaging with PACE Suite Page 37 of 102
© 2014 Infopulse pacesuite.com
Apply to MSI – select a permissions tool to be used to set the permissions on a target machine.
Currently, only SecEdit is supported (See Microsoft’s TechNet
(http://technet.microsoft.com/en-us/library/bb490997.aspx) for details about this
tool);
Don’t apply – permissions are not applied in a package.
Custom Action Name – specify how permissions Custom Action should be named;
Custom Action position – select a position in the InstallExecuteSequence table for permissions Custom
Action. Default is recommended;
Profile Name – specify a name for SecEdit INF security template file;
Component name – specify a component name, which will contain SecEditI INF security template file.
Transforms
Use this tab to set the options for transform creation.
Updates Included in Transform - Please see the “Build the Package” section of this document for
description of these values. The defaults are specified here, but they can be overridden for any package.
Feature for new components – specifies whether a newly created components in transform added to
existing features, or new features are created for those.
4.4.2 Resource Filters
With Resource Filters, you can adjust MSI Generator to produce accurate packages on your custom virtual
machines without extraneous resources included.
Resource Filter is a set of rules used by MSI Generator to determine resources to be included (application-
related) and excluded (system and other applications related) from a project. Multiple Resource Filters can be
defined and dynamically enabled and disabled for each package.
Application Packaging with PACE Suite Page 38 of 102
© 2014 Infopulse pacesuite.com
Managing Resource Filters
To manage Resource Filters, go to Settings Exclusion Files tab.
Filters Folder – a directory where Resource Filters are located (For example, you can point it to a network-
shared pool of Resource Filters used by your team);
Use the Add, Edit, Rename and Delete buttons to manage Resource Filters.
Editing a Resource Filter
To edit a Resource Filter, click the Edit button in the Resource filters list.
Rules for each type of resources are defined by means of Regular Expressions
(http://msdn.microsoft.com/en-us/library/az24scfc.aspx. Use the Add, Edit, Delete buttons to
manage rules, the Test button to test any string against a selected rule or the whole set of rules.
Application Packaging with PACE Suite Page 39 of 102
© 2014 Infopulse pacesuite.com
Another way to add exclusion into a resource filter is using the Always Exclude action when editing a project.
When clicked, you will be asked to select a resource filter to add the exclusion to.
4.4.3 Settings
To access MSI Generator Settings, click the Settings button or select the Options menu item.
Packages folder
Packages Folder – A folder to save all projects to;
Application Packaging with PACE Suite Page 40 of 102
© 2014 Infopulse pacesuite.com
Snapshot settings
Snapshot file path – a folder where system snapshots are stored;
Max Size of Parsed INI File – a maximum size of file, which MSI Generator will try to parse as INI file;
Max Length of Parsed Registry Value – a maximum length of registry strings, which will be stored in snapshots.
Strings that are longer than the specified value will be re-read from system during snapshot comparison.
Ini Files Parsing Settings… – Regular Expression-based rules of INI file detection and its contents parsing. With
this setting, you can, for example, add a new file extension to be recognized as INI file or add a new character as
a comment indicator.
Hard Codes and Application Settings… – Regular Expression-based rules of detecting hard coded values and
application settings (which are replaced with properties by MSI Generator).
Application Packaging with PACE Suite Page 41 of 102
© 2014 Infopulse pacesuite.com
5 MSI Generator
With MSI Generator, you can create an application package on any machine with a full control over the
packaging process. You can capture the installation or create a project once and build multiple output packages
later.
MSI Generator helps you to decide on a packaging approach by automatically detecting embedded MSI products
in a source installation.
This section will guide you step by step through creating an application package with MSI Generator.
5.1 Creating a new Project
5.1.1 Repackaging or Tailoring (creating a Response Transform)
5.1.2 Preparation
1. Start a VM on a clean snapshot. Additionally, it is recommended to close or pause all non-essential
programs and services;
2. Make sure the source application installation is available. It is recommended to copy it to the VM locally;
3. Review packaging document and familiarize yourself with the installation to eliminate inclusion of
wrong actions into the package;
4. Run MSI Generator on VM and select Create Package on the Home screen.
5.1.3 Choose a repackaging method
On the right side of the New Project screen, select either Snapshots, or Monitoring.
Application Packaging with PACE Suite Page 42 of 102
© 2014 Infopulse pacesuite.com
Snapshots – MSI Generator will create snapshots of the system before and after the installation, and your
package will be built based on difference between the snapshots. This method allows reboots during installation
of the software. This is a recommended method for the most of applications.
Monitoring – when this method is chosen, you are able to proceed to installing the application immediately,
and MSI Generator will monitor the process of installation to capture the resources into your package. This
method saves time, but does not allow reboots.
5.1.4 Create First Snapshot
Application Packaging with PACE Suite Page 43 of 102
© 2014 Infopulse pacesuite.com
This step is relevant only if the Snapshots method was chosen. If Monitoring was chosen, you will be directed to
the next step.
MSI Generator will immediately start taking the first system snapshot. While snapshot is taken, you are able to:
customize the resource areas being scanned (and potentially included into a package) on-the-fly:
o Computer (select disk drives)
o Registry (select registry hives)
o Permissions (Access Control Lists of all file system objects and HKLM registry hive).
o Services
o Printers
To speed up snapshotting, it is recommended to uncheck the areas that you know are not supposed to be
altered by the installation or are not desired to be included into the package.
Specify the following options:
o Installation File – (optional) the file path of the installation;
o Launch installation automatically – if checked, MSI Generator will automatically run the
Installation File when the first snapshot is created;
o Package Name – Name of the package;
o Capture installation guide automatically – when checked, the installation and configuration
process will be automatically recorded into a step-by-step document as a series of screenshots
and annotations. This is useful if you have no Installation and Configuration instruction available
and need to document the installation process of the application you package. Docu Generator
must be available on your machine (in a folder next to MSI Generator folder) to use this feature.
5.1.5 Install and Configure your Application
Now launch the installation and apply all required software configuration, according to the Installation and
Configuration instruction (if available). The Installation can be launched right from the MSI Generator window
Application Packaging with PACE Suite Page 44 of 102
© 2014 Infopulse pacesuite.com
with the RUN button, as well as launched manually or by any other means. It will be run automatically by MSI
Generator if Launch installation automatically was checked on previous screen.
Filters
The Resource Exclusion Filters tab enables selecting Resource Filters to be applied during package resources
determination. See the Installing and configuring PACE Suite section for more info about Resource Filters.
Detected MSI & log
MSI Generator monitors the system and detects any log files created and Windows Installer products installed
or unachieved by the installation. All this information is fed to the Detected MSI & log tab in real time. Log files
can be opened and reviewed by clicking their name.
Remember that it is not recommended to repackage vendor-provided MSI products (see the Application
Packaging Approaches section).Thus, if an MSI product has appeared on the Detected MSI & log tab, consider
creating an MST for it – see below for details.
5.1.6 Create Second Snapshot
When the software installation and configuration is complete, click the Start Second Snapshot button.
Application Packaging with PACE Suite Page 45 of 102
© 2014 Infopulse pacesuite.com
This step is relevant only if the Snapshots method was chosen. If Monitoring was chosen, you will be directed to
the next step.
While MSI Generator creates a second snapshot, this screen allows you to choose the type of output package. If
an embedded MSI was found, you will be defaulted to MST. Furthermore, you are able to select the MSI Profile,
and transform mode (see below for more details).
When snapshot creation is finished, you’ll be forwarded to the Project Editing screen enabling you to manage
resources and options and build a package (See “Editing a Project” section below).
5.1.7 Starting from a Blank Project
Starting from a blank project is a good option if you know which files, registry and additional contents should be
included into the package, so that you can add them manually.
To do so:
Run MSI Generator and select Create Package on the Home screen.
On the New Project screen select Blank Project:
Application Packaging with PACE Suite Page 46 of 102
© 2014 Infopulse pacesuite.com
In the next dialog enter a desired name of the new Project:
After this step you’ll be forwarded to the Project Editing screen enabling you to manage resources and options
and build a package (See “Editing a Project” section below).
5.2 Editing a Project
Application Packaging with PACE Suite Page 47 of 102
© 2014 Infopulse pacesuite.com
Application information
Application information and package options are gathered on the Package tab
Application – general information about the application;
Summary info – the information that is in the MSI package Summary Information Stream.
Please see the Build the package section below for details about other options on this tab.
Application Packaging with PACE Suite Page 48 of 102
© 2014 Infopulse pacesuite.com
Files and Registry
The Files and Registry tabs allow viewing and managing files, folders and registry entries of the package.
File and registry resources are classified by two criteria:
State – whether a resource was created, modified or removed during the installation.
Inclusion – whether a resource is identified as an application-related (and thus included into a package)
or as a third party/undesired one (and thus excluded), based on Resource Filters applied.
Included and excluded resources are always displayed side-by side
Count of files/registry by inclusion and state is shown in
the top panel
Views
You can toggle a style of how file and registry resources are displayed using the View switch:
Tree view. Start from this view to overview the resources by locations. It allows to exclude the
complete folders and registry keys that are obviously redundant in your package.
Tree & list. A combination of a tree navigation in the left and included/excluded resources in the right:
List view. Useful for bulk actions. Row filtering is enabled for this view (see below).
Application Packaging with PACE Suite Page 49 of 102
© 2014 Infopulse pacesuite.com
Filtering
You can quickly filter all resources displayed by their state using global filter checkboxes:
Additionally, List view allows advanced filtering by any set of columns:
Actions
Use the Action buttons on the bottom panel or their hotkeys to perform the following actions with the selected
resources:
Exclude (Del) / Include (Ins) – toggle inclusion/exclusion of selected resource(s) in the package. You are
able to change it back any time later on;
Always Exclude – add exclusion of selected resource permanently. You’ll be asked to select Resource
Filter the exclusion to be added to;
Jump To (F4) – Jump to a respective folder in the file system or registry key in regedit;
Export (F2) – Export a selected file/folders or registry keys (as a REG file) to a location you specify;
Create Drive – (Files tab only) Add a new drive letter to install files to;
Create Folder (F7) – (Files tab only) Add a new folder to install files to;
Add Folder (F8) – (Files tab only) Import a folder tree to the package;
Add Files (F9) – (Files tab only) Import files to the package;
Import Registry (F8) – (Registry tab only) Import a REG file.
Actions are also available in pop-up menu of file/registry resources.
Application Packaging with PACE Suite Page 50 of 102
© 2014 Infopulse pacesuite.com
GUID Lookup
The GUID Lookup feature allows viewing information about a Class of Interface selected among registry entries.
This may help to decide to include or exclude respective entries. Click the “+” button to show the GUID Lookup
panel.
Environment variables
Environment variables can be managed on the System Resources tab.
Services
On the System Resources tab, expand Services to review details of services installed or changed during the
installation.
Use a checkbox next to a service name to include or exclude it.
Application Packaging with PACE Suite Page 51 of 102
© 2014 Infopulse pacesuite.com
Printers
Detected printers are displayed on the System Resources tab.
Use a checkbox next to device name to include or exclude it.
Permissions
MSI Generator captures any changes in Permissions (Access Control Lists) made by the installation enabling you
to make your package ready to work in a locked-down environment and reduce troubleshooting efforts.
Note. The following areas are being checked for permission changes: File system and HKLM registry hive.
To review and manage handling or permissions navigate to the Permissions tab.
Application Packaging with PACE Suite Page 52 of 102
© 2014 Infopulse pacesuite.com
Switch between File System and Registry Permissions using respective sub-tabs. In the upper horizontal pane,
review modified resource permissions:
In the lower pane review changed permissions details of a selected resource:
In the Options panel in the bottom review or edit the following:
Permissions Filter – Filter permissions shown by an account. Include or Exclude all filtered;
Apply to MSI – the way permissions will be handled by the package;
SecEdit INF file + CA - permissions changes will be applied by the package by means of SecEdit INF
template and a Custom Action applying it (Note that only resources checked as Included in the top pane
will be included);
Don’t apply – no permissions changes to be deployed by the package;
Export to – export permissions details in a specified format.
Application Packaging with PACE Suite Page 53 of 102
© 2014 Infopulse pacesuite.com
Shortcuts
Use the Shortcuts tab to manage application shortcuts to be installed by your package.
List of Shortcuts shows the list of all shortcuts available in the project. The List of Shortcut’s properties displays
parameters of an item selected.
To toggle a shortcut included or excluded from your package, check or uncheck it respectively in the Include
column of the List of Shortcuts. Note that excluded shortcut is still kept in the project and can be included back
at any time.
Properties
Review and configure MSI Properties of your package on the Properties tab
This tab displays the following groups of properties (Please note that standard properties required by Windows
Installer are not shown):
Predefined. Defined by the MSI Profile (see Installing and configuring PACE Suite to learn about MSI
Profiles);
Application Settings. Detected settings of the application. This may include Server names, IP
addresses, URLs, database login credentials etc. The settings are searched in configuration files and
registry entries based on rules defined in the MSI Profile. Each detected setting is by default turned
into a public property enabling an administrator to configure its value when deploying your package.
Vendor’s MSI properties set during the installation. This includes settings that were specified by you
in original installation’s dialogs (in case a vendor’s MSI was detected).
User-defined. Added manually.
Application Packaging with PACE Suite Page 54 of 102
© 2014 Infopulse pacesuite.com
To edit a property name, click it.
Note. Properties related to Application Settings have empty name on the Properties tab. If you wish them to be
included into the package as MSI properties, you need to define their name in the Name column.
Note. Remember that names of MSI properties are case-sensitive. Moreover, only properties named with
CAPITALS (i.e. Public Properties) can be changed during installation of your package.
To delete selected properties, click Delete in the context menu.
5.2.1 Building a Package
When you are ready to build your package, click the Build button.
Please review the sections below for a guidance to configure a
desired output prior to building.
Package Types and Options
With MSI Generator, you can create an output package of one the following types:
MSI
All resources and options of your project are built into the new single MSI package containing the
application (true repackaging).
MST
All resources and options of your project are built into the MSI transform to be deployed together with
the original vendor’s MSI package (either detected during the installation or any other one). This
package type is recommended if an MSI product was detected during the installation.
App-V
A virtual App-V package is built, and App-V Generator is stated allowing editing it further.
Note. You can change a package type at any time and re-build your package.
Application Packaging with PACE Suite Page 55 of 102
© 2014 Infopulse pacesuite.com
Package type dependent options:
MSI Options – choose an MSI Profile to be applied to the package. See “The installing and configuring PACE
Suite” section to learn about MSI Profiles.
For MSI
MSI File name – edit a name and path of the output MSI package;
INSTALLDIR – select a directory to be considered as the application installation folder;
Application Packaging with PACE Suite Page 56 of 102
© 2014 Infopulse pacesuite.com
For MST
MST File name – edit a name of the output MSI transform (MST);
MSI File name – specify a file to be customized via MST (select among detected MSI products or browse
for any other one);
Transform – these options define the types of changes to original MSI to be included into output MST.
Please see below for the meaning of each checkbox, when checked:
Properties – MST will update properties values that were changed during original installation;
Features – MST will reflect feature states that were changed during original installation;
Update Files – MST will update files already present in original MSI (in case those were updated
during the installation);
Add Files – MST will add files captured during the installation, but missing in the original MSI;
Update Registry – MST will update registry entries already present in original MSI (in case those
were updated during the installation);
Add Registry – MST will add registry entries captured during the installation, but missing in the
original MSI.
For App-V 4.6
Application Packaging with PACE Suite Page 57 of 102
© 2014 Infopulse pacesuite.com
For App-V 5.0
Note. The feature of creating App-V 5.0 packages requires Microsoft Sequencer v.5 to be installed on the
system.
Output Folder
By default, the package is saved to the same folder where the MSI Generator project is (Configured in Settings).
Still you can select a different output folder for package or enter a path directly:
An output folder can be quickly opened in Windows Explorer by clicking the “” button
MSI Generator Project
To enable future editing, an MSI Generator Project is always saved when a package is built. Default projects
location is <User’s Documents>\MSI Generator\Packages\<Project Name> but it can be configured in Settings.
The following contents are saved into a project’s folder:
<Project/Package Name>.mgp – MSI Generator Project file;
<Project/Package Name>_files – Application files required to build a package;
<Project/Package Name>_icons – Application shortcuts icons.
Package Creation Log
During building process, Package Creation Log area on the Package tab is populated with logging messages
(information, warning and errors) related to it. To review a full log, click on the Package Creation Log area
header.
Locked or Missing Files
Application Packaging with PACE Suite Page 58 of 102
© 2014 Infopulse pacesuite.com
In case MSI Generator encounters locked or missing files during package building, an additional window
prompting your action will appear
The following actions are recommended in such case:
1. Review the list of locked or missing files. Uncheck all the files that you consider redundant and not
required in your package to exclude them and click Retry.
2. If some files are still locked, try to close applications that may be using them (most likely, an application
being packaged) and click Retry.
5.3 Opening an existing Project
To enable flexibility, MSI Generator always produces an MSI Generator project file (MGP) when a package is
created.
An MSI Generator project can be opened, edited and built into any supported output on any machine regardless
of a machine it was created on. All the resources are stored in a project, so that you have a space for decision
making.
To open an MSI Generator project, either:
On the Home screen, select the Open Project feature or use the arrow to select a recent project;
In the Project Edit Window, select File Open menu item;
Application Packaging with PACE Suite Page 59 of 102
© 2014 Infopulse pacesuite.com
In Windows Explorer, double-click an MSI Generator Project file (MGP).
When a project is opened, the Project Edit screen will appear allowing you to edit and build a package (see
above for guidance).
Note. When copying an MSI Generator Project, remember to copy the complete Project Folder, not only a
Project file. Otherwise, application files will not be available to be built into a package.
Application Packaging with PACE Suite Page 60 of 102
© 2014 Infopulse pacesuite.com
6 MSI Editor
With MSI Editor you can edit an MSI package or create a transform for it. MSI Editor also allows importing
resources.
This section will help you overview the process of editing a package with MSI Editor and main tasks you can
perform.
6.1 Basic and advanced operations
6.1.1 Creating new package
To create new MSI package:
a. Lanch MSI editor and select FileNew from the main menu
b. Select location for new MSI in opened Save As dialog.
6.1.2 Opening
To open an MSI, MST + MSI, WSI, CUB, MSM:
a. Launch MSI editor and select FileOpen from the main menu
b. Drag a file into MSI Editor’s window
c. Select MSI Editor in file’s context menu in Windows Explorer.
NOTE: CUB, WSI and MSM files can only be opened via FileOpen.
Application Packaging with PACE Suite Page 61 of 102
© 2014 Infopulse pacesuite.com
6.1.3 Saving and generating a trasform
To save a file you’ve edited (e.g. MSI), select File Save.
To save all the changes you made into a separate MST to leave an original MSI unchanged, select File
Generate Transform:
6.1.4 Compiling
To “Compile” a package, select File Rebuild CABs and save.
This operation will gather all changes made in package source files and update an MSI/MST and any internal of
external CABs accordingly.
6.1.5 Importing registry
To Import a registry entries file (REG), select Tools Import Reg File.
Application Packaging with PACE Suite Page 62 of 102
© 2014 Infopulse pacesuite.com
Browse for a file, select a feature to assign newly created components to and review/change destination
components for each registry value. Click Import when ready.
6.1.6 Importing files and folders
To import files or a folder (including all its files and subfolders), select Tools Import Files.
Step 1
Target directory – a folder in the package where files or folders will be imported.
Feature - a feature to assign newly created components to.
Application Packaging with PACE Suite Page 63 of 102
© 2014 Infopulse pacesuite.com
Step 2
Select Files – to select one or many files which should be imported.
Select Folder – to select folder with its subfolders which should be imported.
Step 3
Media type – Media type for added files: compressed in a new cab of uncompressed external.
INI Files – how to treat INI files.
Application Packaging with PACE Suite Page 64 of 102
© 2014 Infopulse pacesuite.com
Step 4
Import COM information – check to import extracted COM information from imported files.
6.1.7 Adding, Dropping and Importing tables
To add or drop MSI tables, select Tables Add & Drop Tables
Check checkboxes next to required MSI table(s) in the left column (standard MSI tables are available) to add
them to the current MSI database and click the Add button.
Select MSI table(s) in the right column and click the Remove button to drop selected tables in the current MSI
database.
Application Packaging with PACE Suite Page 65 of 102
© 2014 Infopulse pacesuite.com
A table can also be dropped via the context menu in the table editor:
To import MSI tables, select Tables Import Tables
Select table(s) (IDT files) to be imported. If a table is absent in current MSI database, it will be added silently,
otherwise a confirmation dialog will be shown:
Check checkboxes next to the tables, which will be imported and will replace existing tables in MSI.
Application Packaging with PACE Suite Page 66 of 102
© 2014 Infopulse pacesuite.com
6.1.8 Active Scripting
Active Scripting is a technology which allows running user-created scripts in the application’s environment. In
MSI Editor, it allows you to create or add existing scripts to automate any routine tasks.
To run a script:
1. Select Tools Active Scripting.
2. Select a script to be run
3. Set script properties (if needed)
Application Packaging with PACE Suite Page 67 of 102
© 2014 Infopulse pacesuite.com
4. Click the Execute button
To Add a Custom Script:
1. Select Tools Active Scripting.
2. Click the Add button.
3. Fill in Scriptlet name, and Function name.
4. Select a scriptlet storage File Path
5. Fill in Description
6. Add script properties (arguments, required by script)
7. Add the script’s body, by clicking Start Editing.
Application Packaging with PACE Suite Page 68 of 102
© 2014 Infopulse pacesuite.com
8. Save a script in a text editor and click Save in the Add Scriptlet window
6.1.9 Find/Replace
Use Edit -> Find/Replace or Ctrl+F to Find/replace any text in an opened file. Regular expressions are supported
(select Use RegExp option for that).
Application Packaging with PACE Suite Page 69 of 102
© 2014 Infopulse pacesuite.com
6.2 Application Information
This tab allows managing general information, which is stored in the Summary Info, Property and Upgrade
tables of an MSI.
Import Upgrades… – to import Upgrade information from selected MSI packages automatically.
6.3 Files
Application Packaging with PACE Suite Page 70 of 102
© 2014 Infopulse pacesuite.com
This tab enables reviewing all files and folders in a tree. Use the context menu to jump to the table editor.
Grayed out folders are Windows Installer predefined folders.
6.4 Registry
Similarly to the Files tab, the Registry tab shows all registry data of an MSI in a tree. Jump to the table editor,
and add values.
6.5 Shortcuts
Application Packaging with PACE Suite Page 71 of 102
© 2014 Infopulse pacesuite.com
The left pane shows a list of shortcuts in the package, the right pane allows editing the properties of a shortcut.
6.6 Features and Components
On this tab, all MSI features and components are shown in a single tree. This is useful when you need to review
the structure of a package. The right pane gives ability to edit attributes and options of a component or feature
selected. Use the context menu or a button to jump to the table editor.
6.7 Custom Actions
Application Packaging with PACE Suite Page 72 of 102
© 2014 Infopulse pacesuite.com
This tab allows viewing and managing standard and custom actions in a package, as well as creating and editing
custom actions.
6.7.1 Viewing and managing actions
Views
The left pane shows a list of standard and custom actions depending on a selected view (a view mathes a
respective MSI table):
InstallExecuteSequence – actions that are executed when the package is being installed (the top-
level INSTALL action is executed).
InstallUISequence – actions that are executed only when the package is being installed in UI mode
(the top-level INSTALL action is executed and the internal user interface level is set to full UI or
reduced UI).
AdminExecuteSequence – actions that the installer calls in sequence when the package is being
installed to an admin share (the top-level ADMIN action is executed).
Actions list
The Actions list provides the following information:
Checkbox - denotes whether an action is run always, conditionally, or never (disabled). Cleck to
change the state.
Icon - shows the custom action type. Standard actions do not have an icon.
Deferred custom actions are marked bold:
If an error found, a custom action is marked red:
Sequence
Actions are shown in the order of their sequence number. To change a sequence, either:
drag and drop an item;
Application Packaging with PACE Suite Page 73 of 102
© 2014 Infopulse pacesuite.com
use the Up and Down buttons ( );
change a sequence number manually on the right pane
Filtering
Click the Filter… button ( ) to filter the list of actions and Clear filter ( ) to reset.
Filter options:
By source type
By condition
o On Install - actions that are executed when the package is being initially installed
o On Reinstall – actions that are executed when the package is being repaired of changed
o On Remove - actions that are executed when the package is being uninstalled
Note. This filter option is based on analysis of Condition filed of each action and may filter actions with
complex conditional constructions not accurately.
Hide standard actions – show all actions (including standard ones) or only custom actions.
6.7.2 Creating an editing custom actions
Creating
To create a new custom action either:
Click the ( ) button. This will create an action without a sequence – you will need to set its sequence
by entering the number of dragging to the right position in the list.
Use the context menu
Application Packaging with PACE Suite Page 74 of 102
© 2014 Infopulse pacesuite.com
This will create a new action with a sequence after a current item in the list.
Options of an action
Name;
Source type – a type of an action;
Source – Source of an action. Type and choose properties, files or binary items in drop-down menu, or
import any file (to Binary table) using the button ( );
Target – Target of an action. The field is Intellisense-enabled (See IntelliSense editing for more info).
Click the ( ) button to edit in multi-line mode;
Condition – specify a condition. Pick most commonly used constructions from the drop-down menu;
Sequence – enter a number here, or drag an action in the list to change its sequence;
Attributes;
Type – the number which represents the Type colun in the CustomAction table. This number includes
source type and attributes.
Application Packaging with PACE Suite Page 75 of 102
© 2014 Infopulse pacesuite.com
6.8 Properties
The Properties tab gathers all the properties in a single view, including the Property table, properties set by
custom actions, AppSearch, or via UI. A filter allows showing only public/private or standard/custom properties.
Furthermore, a description for standard properties is shown.
Filter name Description
Public Public properties in UPPER CASE
Private Private properties where at least one symbol in lower case
Standard All properties listed in LookupConfig xml (Properties node) as standard properties
Custom All except of Standard properties
Updated by AppSearch Show ONLY properties listed in AppSearch table.
Updated by UI Show ONLY properties listed in Control table, CheckBox table etc
Updated by CustomAction Show ONLY properties updated in CustomAction table. CustomAction table
All Properties All properties from different tables
Application Packaging with PACE Suite Page 76 of 102
© 2014 Infopulse pacesuite.com
6.9 Table Editor
With the table editor, you can manually edit MSI database tables.
Note. Direct editing requires advanced knowledge of Windows Installer database structure, so make sure you
are aware what are you doing before you do.
You can navigate through tables on the left pane and view/edit table data on the right.
6.9.1 Row References
MSI Editor offers user very useful feature named Row References. By selecting any row in opened MSI user can
see the list of rows that are linked to the selected row. Press “Go To Selected Row” in the list to navigate to this
row.
Application Packaging with PACE Suite Page 77 of 102
© 2014 Infopulse pacesuite.com
6.9.2 Undo-redo stack
MSI Editor offers user the full control of actions and operations performed with the opened MSI via The
Operations Recording Stack and Undo/Redo functionality. You can always revert the last operation using Ctrl+Z
hot key or by clicking an operation in the list. Redo an action using Ctrl+Y. The list of all actions performed for
the current MSI is stored and shown in the Operations tab of the bottom section of MSI Editor.
6.9.3 Smart Field editing
With the Smart Editing feature you can save lots of efforts when replacing or editing cells info.
There are 5 types of smart editing fields:
GUID
Numeric
Masked attributes
Lookup
Special lookup
Intelli-sense
GUID Editing
You can easily generate new GUID at editing
GUID cell by pressing on the “Generate
GUID” button.
GUID entries are validated to represent a GUID value:
Application Packaging with PACE Suite Page 78 of 102
© 2014 Infopulse pacesuite.com
Numeric Editing
User can switch to hex/dec view for numeric cell:
When user clicks the switch button, numeric value is converted into selected view
mode:
HexView is shown via standard hex number representation with 0x prefix marking hex view mode start.
Both forms are editable and values edited in hex mode will be automatically changed in hex:
Dec/Hex values are automatically validated according to column type (Short, Int, Long):
And numeric value:
Masked Attributes Lookup
Masked attribute is basic text box with select attribute button:
You can easily set them via user friendly UI with attributes description. In order to do it click the “Select
attribute” button context menu. You will see the list of predefined attributes, their value, value in hex format,
and info field button.
Application Packaging with PACE Suite Page 79 of 102
© 2014 Infopulse pacesuite.com
Attributes are gathered into groups by their value or property they affect. You can select/deselect attributes
according to group rules (Select => Any, ZeroOrMore, OneOrMore, One). When an attribute is
selected/deselected, it’s value is added/substructed from text box’s value.
Masked attribute values are validated as numeric lookup value.
Lookup
You can easily select all possible options of lookup cell editing by selecting
values from drop down box.
You can select values from combo boxes, or begin typing values to enable
combo box’s text search feature:
Lookups are validated uniqueness:
Application Packaging with PACE Suite Page 80 of 102
© 2014 Infopulse pacesuite.com
Special Lookups
Special lookups are lookup drop down lists with additional info fields placed near the combo box’s general
value:
There are 7 special lookup types:
Directory lookup => the Info field displays target path value
File lookup => the Info field displays target path + file name value
Component lookup =>the Info field depends on attribute set for specified component it can be file,
registry, ODBC source. If a component’s key path is null, the Info field displays target path for the
components directory. If a file attribute is set, the Info field displays file lookup value for the component
key path file. If a registry – value for registry lookup component key path registry item. If an ODBC
source attribute is set, the Info field displays value of the DataSource column in the ODBCDataSource
table for the component’s key path ODBC value.
Component key path lookup => the Info field displays registry, file or ODBC data source value according
to attribute set.
Custom action lookup => the Info field displays information according to attribute set in the Attribute
column.
Custom action source lookup => the Info field displays directory lookup, file lookup, property field value,
or binary item label.
Registry lookup => the Info field displays resolved registry item value in form of (Registry hive\ Registry
key\ Registry name = Registry value)
Info fields are validated according to Lookup specification.
Application Packaging with PACE Suite Page 81 of 102
© 2014 Infopulse pacesuite.com
IntelliSense editing
When you edit formatted fields or Contrition fields, you enter text according to complicated syntax. IntelliSense
editing helps user in specifying suggested values and autocompleting values in formatted and condition fields
editing. It’s based on the Lookups feature and uses special standard lookup collections to build IntelliSense
information. It can be then offered to user in the form of dropdown list with suggestions for the autocomplete
of the currently typed value.
You can use the IntelliSense feature in a fast and convenient way by beginning typing in the cell and then
choosing from available options from the list.
There are 6 lookups depending on lookup key user typed first:
“[” => Directory and Property lookup
“[%” => Environment variable lookup
“[~” => Registry lookup
“[#” => File lookup
“[!” => File lookup with short name
“[$” => Component lookup
If lookup is opened you have several ways to interact with it:
Directly select value from list and click on it, as a result a selected value will be added to current
formatted item with enclosing key “]”, Suggestion list will close automatically
Start typing letters of required key. The auto complete feature will kick in and the list of suggested
values will shrink with every typed letter, according to the matches in lookups:
Application Packaging with PACE Suite Page 82 of 102
© 2014 Infopulse pacesuite.com
You can use keyboard arrows to navigate up or down the list, and select the needed value by pressing
the “Enter” key:
The parser can detect if you have placed text box’s cursor outside formatted key that was edited and hide
suggestion list:
Placing a cursor further or before formatted key will result
the IntelliSense to collapse the suggestions list:
If you put the cursor back, the
suggestions list will reappear:
Application Packaging with PACE Suite Page 83 of 102
© 2014 Infopulse pacesuite.com
Selecting existing formatted key will
result the IntelliSense to treat it as a
lookup value and bring the suggestions
list:
Selecting part of existing
key will do the same thing:
Application Packaging with PACE Suite Page 84 of 102
© 2014 Infopulse pacesuite.com
7 App-V Generator
With App-V Generator you can create an App-V package from a source installation or from an MSI Generator
project. Using advanced features, such as properties Inspector and Actions Pool, you can resolve issues and
increase virtualization compatibility.
This section gives a guidance to create an App-V package.
7.1 Standalone sequencing of a new application
If you have the whole PACE Suite in place, it is recommended to always capture applications with MSI
Generator, even if you need App-V package only. This would give you more flexibility, e.g. if an MSI package
becomes needed later.
Still App-V Generator can be used stand alone for full cycle App-V packaging.
7.1.1 Starting
To start sequencing, launch App-V Generator and select File New… from the main menu.
Specify Package Information.
In the Package Creation Wizard window, specify the following parameters:
Package name – the desired name of a target App-V package. You will be able to edit this later.
Asset Directory (or Primary Virtual Application Directory) – the directory where the application will be
installed during sequencing. You will NOT be able to edit this later.
Comments (optional) – enter any information that may be valuable when deploying or editing the
sequence later. You will be able to edit this later.
Application Packaging with PACE Suite Page 85 of 102
© 2014 Infopulse pacesuite.com
Before proceeding, please make sure that all other applications are closed and that application installation
media is available.
Note. In order to get resources captured into a virtual package, App-V Generator uses the snapshot
comparison method rather than the system monitoring method (used e.g. by MS Sequencer), which
ensures that all changes done by the original installation included and nothing missed (e.g. typical
issue with shortcut advertising functionality).
7.1.2 Create First System Snapshot
When ready, click the Next button. If you
have previously made first system
snapshot App-V Generator will ask if you
want to use it or create a new one.
Otherwise the creation of the first
snapshot will begin immediately.
After the snapshotting process is finished
you can press Next and proceed to
installing your application.
7.1.3 Install and Configure the Application
Now you’re ready to install and configure the application being sequenced. Remember to:
Run and follow up the installation
process of application being
sequenced.
Specify Asset Directory as an
installation path (if supported by
vendor) as per App-V sequencing
best practices;
Launch the application and
perform its configuration, if
required.
In the Package Creation Wizard window,
you’re also able to change the resource
exclusion filters to be applied during snapshots comparison and generating a package (this might be helpful to
customize App-V Generator for your environment). Filters serve to dispatch captured application-related
resources (files, registry, services) from system- or other applications-related ones and avoid including
extraneous content to a final package. It is recommended that you leave the default filters enabled.
Application Packaging with PACE Suite Page 86 of 102
© 2014 Infopulse pacesuite.com
7.1.4 Create Second System Snapshot
When you’ve made all the necessary
configuration to your application, click Next.
This will trigger the second snapshot
creation.
Once the second snapshot is done, you will
be directed to the main application window
to go on with editing (if required) and saving
your package.
7.2 Editing App-V package
7.2.1 Package options
Once the second snapshot is done, you will be directed to the main application window to go on with editing (if
required) and saving your package.
The following options are available under the General tab:
Package Name – the name of a target App-V package;
Comments – optional field containing any information valuable for further reference when
deploying or editing a package;
Output Folder – a directory where the target package will be saved upon selecting File Save…
Generate MSI Package – whether to generate an MSI installation package for a standalone package
deployment. Please see “The Opening and Saving Packages” section below for more info.
Application Packaging with PACE Suite Page 87 of 102
© 2014 Infopulse pacesuite.com
7.2.2 Files and Registry
Using the Files tab you can view, add, change, delete and import/export virtual files and folders and set App-V
specific attributes for directories.
The Registry tab gives you an ability to add, delete, modify or import registry keys and values and manage
attributes of a virtual registry. Use the context menu options to perform operations upon any resource.
Application Packaging with PACE Suite Page 88 of 102
© 2014 Infopulse pacesuite.com
7.2.3 Virtual Services
The Services tab enables you to manage virtual services included into the package. Manage services on the left
pane (You can add existing services from current machine by clicking the Add button or remove unnecessary
ones from the package by clicking Remove) and edit selected service properties on the right pane.
7.2.4 OSD Files
An OSD file (Open Software Descriptor) (http://msdn.microsoft.com/en-
us/library/aa740951%28v=vs.85%29.aspx) contains all the data required to publish and run a single
Application Packaging with PACE Suite Page 89 of 102
© 2014 Infopulse pacesuite.com
application sequenced into virtual package. There may be several OSD files (shortcuts to applications) in a single
App-V package. When virtual application is deployed to desktop, OSD files are visible for user as shortcuts.
The OSD Files tab allows you to add/remove the OSD files in your
package (Use the Add and Remove buttons in the bottom of the left
pane) as well as set up options and contents of each one. When
selecting an OSD file in the left pane, the right pane gets populated
with its data and options.
The tab has two display modes, toggled with a special switch:
User;
Expert.
User display mode gives you a quick access to the most commonly used options, such as:
Application/shortcut Name, Version and Icon;
Shortcut Target and Arguments;
App-V Streaming options – protocol, hostname and port of an App-V streaming server;
Shortcut locations – the standard location a shortcut to be placed to;
File extensions – file associations with a virtualized application to be published on a client machine.
Switching to Expert mode provides you with a full control of all extensive options and contents of an OSD
file such as (but not limited to):
Operating System visibility;
Minimum required App-V client version;
OSD scripting (see “Actions pool” section for more info);
Advanced shortcuts management;
Environment variables;
ProgId's;
DSC (Dynamic Suite Composition).
Application Packaging with PACE Suite Page 90 of 102
© 2014 Infopulse pacesuite.com
7.2.5 Advanced features
Properties Inspector
Hard-coded values (any specific values that are expected to be different on other machine or in different
conditions and should be replaced by dynamic variables – e.g. full file path, name of a user, hostname, database
credentials etc.) inside a package may cause compatibility issues or even break functionality of a virtual
application. App-V Generator’s “Properties Inspector” feature (accessible on the Properties Inspector tab) helps
to identify such values by analyzing a package using a predefined (yet fully customizable) rule set (set of search
settings and regular expressions).
Application Packaging with PACE Suite Page 91 of 102
© 2014 Infopulse pacesuite.com
To do a search, press the “GO” button on the Properties Inspector tab, and the Results pane will be fed with
found matches. For convenient analysis, the search results are grouped by the categories: Credentials, User
Specific, Machine specific and Network specific (still categories are configurable – see below). In the Results
pane, a context menu is available enabling you to exclude an item from the package or jump to a folder, file or
registry entry to investigate and eliminate a hard-coded value.
Some hard-coded values cannot be simply replaced by variables (e.g. they are located inside a file) and need to
be eliminated by means of OSD scripting. Please see the “Actions pool” section for how is it done with App-V
Generator.
Predefined Properties Inspector rule
set comes with App-V Generator, but
you’re able to fully customize it using
the Edit button on the Properties
Inspector tab. The rule set editor
allows you to configure groups, search
conditions (matches/regular
expressions), areas to search in and
exclusions.
Application Packaging with PACE Suite Page 92 of 102
© 2014 Infopulse pacesuite.com
Actions Pool
Actions pool is kind of a library of OSD scripts enabling you to resolve issues or make your package perform
specific tasks.
App-V Generator’s Actions pool can contain any types of
scripts supporter by App-V technology (VBS, shell,
embedded OSD scripts etc.) and already comes with
several pre-defined helpful scripts. To access the feature,
select Tools -> Actions Pool... item in the Main menu or
click the Actions Pool button on the Scripts pane of the
OSD Files tab (in Expert display mode).
Having such a library right in App-V Generator, you can
collect helpful things from package to package and ease
you future work w/o having to reinvent solutions found before. With built-in editor, you can add your own
scripts and do not need to edit OSD files each time directly.
An example pre-defined script from Actions Pool
is “File texts replace”. It enables you to
dynamically replace hard-coded paths in virtual
files of your package (see “Properties inspector”
section for how to discover such values). When a
script is selected and launch options are
specified, you can enter its parameters.
The “File Text Replace” script needs three
parameters: Name of the file, a value that needs
to replaced, replacement value.
Application Packaging with PACE Suite Page 93 of 102
© 2014 Infopulse pacesuite.com
7.2.6 Opening and Saving Packages
Saving a package
To save a package, select File Save… from the main menu. The package will be saved In the Output folder
specified on the General tab. If left empty then it is set to the default output folder, configurable in Tools
Options menu.
After a package is saved, App-V Generator will open its folder in Windows Explorer.
To save a package with different name or to a different location, select File Save SFT as… from the main
menu.
Note. If a separate OSD has been opened then File Save… and File Save OSD as… menu commands serve
to save a single OSD file, not a complete package.
Output files
When you save a package both the full and deployment-ready set of App-V package files is being generated. See
table below for the output files listing.
Output File Description
<Package Name> Icons A folder containing icons for applications being published
by the package
<App Name>.OSD OSD files you’ve set up on the OSD Files tab.
<Package Name>.MSI An MSI installer file used for standalone deployment of an
App-V package. Running this installer leads to streaming
your virtual application on a single machine.
This file is generated only if the Generate MSI Package
checkbox is checked on the General tab.
<Package Name>.SFT Binary file containing all assets and state organized into
stream able feature blocks.
<Package Name>.SPRJ Sequencing project with references to OSD, default
package settings, list of all parser items, classifications and
exclusions.
<Package Name>_manifest.xml Publishing parameters for all applications in a package.
Opening a package
App-V generator can open any existing App-V package created with any
application.
To open a file, select File -> Open… menu and use the dialog box to select
a file.
App-V Generator supports opening the following types of files:
App-V package files:
o Virtual resources container binary file (SFT);
o Virtual application publishing file (OSD);
MSI Generator project file (MGP, XML).
After opening a file, you’re able to edit its contents, add any new resources, and save a package.
Application Packaging with PACE Suite Page 94 of 102
© 2014 Infopulse pacesuite.com
8 Docu Generator
To create an application package that fulfills the requirements and expectations, you need to know clearly how
the application has to be installed and configured step-by-step. This includes (but is not limited to):
Installer files to be launched and features to be installed
Options to be specified in installation dialogs
License keys to be used
Application settings (e.g. startup screen disabled, connection settings specified) to be pre-configured by
the package
Desired shortcuts and their location.
While this information may be obvious for some installations (e.g. a simple next…next one without a choice), its
description is essential for another complicated ones.
It is recommended to agree on a standard form of an Installation and configuration instruction and make it
available along with original software installations.
Docu Generator helps to automate the creation of such documentation.
Follow the steps below to create an installation and configuration instruction with Docu Generator. Provide
these steps to your requester if you wish to ask them to create such documents.
8.1 Launch Docu Generator and Start Recording
Launch Docu Generator. On the Home screen, click Record
Scenario.
Scenario is user actions recorded by Docu Generator as a series
of screenshots and annotations. A scenario can be saved in internal Docu Generator format (DSCN file) or as a
document (DOC, HTML, MHT).
8.2 Control Recording
The recording window will appear in the lower right
corner of your desktop providing you the following
controls:
Pause/Continue – Click to pause recording.
Click again to resume;
Stop – stop recording and proceed to saving
results;
Hot Keys – Hover to see a hint of Hot Keys.
Click to edit Hot Keys
Application Packaging with PACE Suite Page 95 of 102
© 2014 Infopulse pacesuite.com
8.3 Take Screenshots
Now, do the actions you want to record into the
document. Launch executables, go through dialogs,
select options and enter values just telling Docu
Generator when to take another screenshot, as
described below.
To take a screenshot:
8.3.1 Window/Smart area screenshot
Hold left Shift key when clicking. This will
make Docu Generator grab a window or
dialog/message box you’ve clicked on. If you’ve clicked outside any window (e.g. on desktop shortcut),
then a smartly chosen rectangular area around mouse pointer will be grabbed.
Executable path, a window title, names of clicked buttons or other controls, contents of text fields from
a captured window are automatically grabbed into textual annotations. Yet inclusion of this information
into a target document can be controlled when saving.
8.3.2 Custom area screenshot
Press Ctrl+Shift+PrintScreen, then click and drag the mouse pointer to select a rectangular area you
want to grab. A screenshot is done when you release the mouse button.
A preview of each new screenshot immediately appears in the Recording window.
8.4 Manage Screenshots
Hover the mouse pointer over a preview of a screenshot in the
Recording Window to access its options
Edit annotation… – Edit an annotation for the screenshot;
Copy to clipboard – Copy the screenshot to clipboard for
immediate use;
Remove – Delete the screenshot (preceded by a prompt).
Hover the mouse pointer over a preview for another moment to view the screenshot enlarged.
8.5 Add Annotations
To add a text annotation to the latest
screenshot, click the Add Annotation
button in Recording window or use the
Ctrl+Alt+X hotkey. Enter annotation text
in the “Add Annotation” window and
click the Add button
Application Packaging with PACE Suite Page 96 of 102
© 2014 Infopulse pacesuite.com
8.6 Save results
When done, click Stop in the Recording window. The Save Results window will appear:
Use the Save as switch to select the output format. The following output formats are supported:
Word Document – the scenario will be saved as a series of screenshots and annotations into a DOC file;
MHT/HTML File – the scenario will be saved as a series of screenshots and annotations into a HTML
(Web page) or MHT (Web archive) file. A file type can be selected in a dialog box after clicking Save;
Docu Generator Scenario – the scenario will be saved in internal Docu Generator format (DSCN file)
which can be opened with Docu Generator and converted to an output document later.
Note. To let you return to your scenario later, Docu Generator always creates DSCN file along with the output
file in an output folder.
Note. If Microsoft Word is unavailable on the machine, the option of saving DOC file is inactive, but you still can
save a DSCN file and convert it on a machine with MS Office installed later.
Use the Template field to point Docu Generator to a template to be used for the output document. Please see
the next step for details.
The Options pane allows controlling the following information inclusion to the output document:
Save user actions – populate annotations with names of windows and controls clicked on;
Show mouse position – show mouse pointer and highlight it with a red circle on screenshots;
Show started application info – populate annotations with paths and command line arguments of
applications run during recording;
Show contents of edited fields – populate annotations with the contents of editable fields from
captured windows and dialog boxes.
Click the Save button to save the document. The document will be automatically opened in a default viewer,
and Docu Generator will be closed.
Application Packaging with PACE Suite Page 97 of 102
© 2014 Infopulse pacesuite.com
8.7 Use Document Templates
Docu Generator supports Microsoft Word (DOT/DOTX) and HTML/MHT templates to be used for document
creation. To use a template, specify its file path in the “Save Results” window (see previous step).
In order to mark a position where screenshots and comments are to be placed to, add the following textual
placeholder into a template:
[SCR]
You can specify placeholder [SCR] in the existing table in a template. In this case the placeholder points to a cell
where screenshots should start, while a column to the right of it will be populated with comments.
If the placeholder is located outside a table, then a new table for screenshots and comments will be created. A
Docu Generator-default table style will be used.
If a placeholder is not found, screenshots and comments will be appended to the end of the template. You’ll be
warned about this in the Save Results window:
Application Packaging with PACE Suite Page 98 of 102
© 2014 Infopulse pacesuite.com
9 Quality Assurance with PACE Suite
The final stage before deploying an application package is its Quality Assurance (QA).
This section describes a workflow to check a created application package and make sure it is ready to go to
production.
QA process may differ based on enterprise-specific needs. For example, it may have either one or several stages
like user acceptance test and production acceptance test done by different parties.
Regardless of process-based specifics, general steps to test a package are the following:
1. Validate against technology requirements
2. Verify against your packaging requirements
3. Test package functionality
4. Test application functionality
9.1 Validate against Windows Installer requirements
It is recommended to start QA from checking if a package meets technology requirements. For MSI, the easiest
way to do so is using Microsoft’s Internal Consistency Evaluators (http://msdn.microsoft.com/en-
us/library/windows/desktop/aa369554(v=vs.85).aspx) - ICE.
To do this in MSI Editor:
1. Open the MSI with MSI Editor and Select Validation Full MSI Validation Suite menu item.
Application Packaging with PACE Suite Page 99 of 102
© 2014 Infopulse pacesuite.com
2. Use the Ice Validation sub-tab on the Tables tab to review the errors and warnings. Clicking an error or
warning will navigate you to the respective table and cell.
9.2 Verify against your packaging requirements
Remember that packaging requirements for your package consists of two information sources (see Packaging):
Overall requirements gathered from the sponsor (requester, manager);
Installation requirements for the specific application (Installation and Configuration Manual).
Review your package and make sure no requirements of both types are missed. To streamline this process, it is
recommended to gather the common requirements in a checklist.
9.3 Test package functionality
Package functionality implies its correct installation, user data deployment, MSI repair (if required), and
uninstallation. Reliability of this stage depends mostly on how your testing environment is close to a production
one. Also, it is strongly recommended to use the same deployment means as in production.
Correct uninstallation implies that after uninstalling a package the system and third-party applications function
similarly as they did before your package installation. A reliable way to ensure this is the following:
1. Snapshot system’s resources before installing your package.
2. Install, run application and uninstall your package.
3. Snapshot system’s resources for a second time.
4. Compare the two snapshots. In case the comparison shows removed resources then most likely an OS
or third party apps are influenced by out package (application conflict).
Follow the steps below to do this test with MSI Generator.
Application Packaging with PACE Suite Page 100 of 102
© 2014 Infopulse pacesuite.com
9.3.1 Create a snapshot before installation
Run MSI Generator and select Create snapshot task in the Home screen.
System snapshot creation starts immediately, but you still can customize areas being scanned
MSI Generator saves system snapshot as a set of files in a Snapshot Folder. Snapshot Folder path defaults to
<User’s Documents>\MSI Generator\Snapshots\<Snapshot Directory> (can be changed in Settings).
Snapshot Directory is named in the following format: <Machine Name>_<Timestamp>.
Click the “” button to navigate to your Snapshot Directory.
When the system snapshot is created, you can choose whether to create another one, compare it with the
existing one or go back to the home screen:
Note. A Snapshot Folder can be copied to any machine and used for comparison with any other snapshot, even
done on other machines.
Application Packaging with PACE Suite Page 101 of 102
© 2014 Infopulse pacesuite.com
9.3.2 Install and then uninstall the Application Package
Install your package, run the application. Perform any functional testing required (see below). Then uninstall the
package.
9.3.3 Create a snapshot after uninstallation
Repeat snapshot creation with MSI Generator (can be done by clicking the Cerate snapshot button).
9.3.4 Compare Snapshots and review resource consistency
Click "Compare Snapshots" on the MSI Generator Home Screen.
Specify the following options on the Compare Snapshots screen:
First Snapshot and Second Snapshot – are snapshot, will be compared. Select from the list or choose
snapshot directory;
Project File – an MSI Generator project to save comparison results as;
Filters – to be applied during comparison (see Installing and configuring PACE Suite to learn about
Resource Filters);
Click the Compare > button to run comparison.
An MSI Generator Project Editing window will appear allowing you to review snapshots difference.
9.4 Test application functionality
An important part a package QA is to check if a packaged application functions as expected. To do so, it is
recommended to:
1. Compare a behavior of your packaged application with the one installed with an original source
installation.
2. Check if your application’s configuration meets the one described in Installation and Configuration
Instruction.
Application Packaging with PACE Suite Page 102 of 102
© 2014 Infopulse pacesuite.com
Appendixes
1. Appendix A. Sample applications for packaging
Application Possible outgoing Package Types
7Zip MSI, MST, App-V
Adobe Reader MSI, MST, App-V
Adobe SVG Viewer MSI, MST, App-V
Mozilla Firefox MSI, App-V
Apple iTunes MSI, MST, App-V
Apple QuickTime MSI, MST, App-V
FileZilla MSI, App-V
Google Chrome MSI, MST, App-V
Winamp MSI, App-V
Oracle Java Runtime Environment MSI, MST
Microsoft Skype MSI, MST
Microsoft Office Viewers MSI, MST, App-V
IDM UltraEdit MSI, MST, App-V
Notepad++ MSI, MST, App-V
WinZip MSI, MST, App-V
DoPDF MSI
CDBurner XP MSI, MST