- 2GB size limitation in older Outlook versions
- Sudden cut in power supply
- Hardware-related issues
Before any packaging starts, a packaging environment should be prepared. As a rule, a packaging environment should be virtual, and the reasons for this will be covered later in this article. Conditionally, we can differ the packaging environments by several criteria:
By a packaging technology. A packaging technology defines a set of tools, which should be preinstalled on a packaging client. The following tools are recommended but MSI packaging process is not limited to them, and it possible to use other software:
|A powerful toolset for almost all packaging needs (MSI/App-V/ThinApp)|
Sysinternals Suite (the most required tools)
PsExec – command line tool that we will use to start cmd.exe console under built-in system account. This account is usually used in most deployment systems to deploy software.
Process Monitor (procmon.exe) – this tool can be used for analysis of application/installation behavior and it helps to understand the causes of certain application/installer activities.
Process Explorer (procexp.exe) – this tool shows the process tree and helps to understand what child processes are created by an application or an installer.
Some double panel file manager (optional)
A convenient tool to work with the files during packaging. It has numerous plugins, which can help to work with ftp, archives, editors etc. This is absolutely not a required tool – the choice depends on the demands of each engineer.
By purpose. The two main purposes are:
Packaging. For this purpose, we need to have as clean OS as possible, with a minimal number of preinstalled software. For these needs, it is better to use the OS right after it has been installed, and a minimal set of packaging tools. This is necessary in order to minimize the impact of a third-party software on the packaging process, as well as to identify the possible software dependencies and correctly handle them.
Testing. This environment should be as similar to the end-user environment as possible. It would be better to use a virtual image utilized in the end-user environment where the package will be installed.
After the packaging environment is prepared, the packaging process can start.
The first thing a packaging engineer should do before the actual packaging is the Incoming Check. During this process, the following investigation should be conducted:
- Check package sources availability. The discovery document and application sources should be available and copied to the packaging workstation. The best practices for creating discovery documentation will be covered in a separate blog article.
- All instructions in the discovery document should be clear and reproducible with given software sources.
- After successful installation, an application should also be successfully launched and all required configuration should be available.
- Installation should be evaluated in accordance with the estimation complexity matrix. This document is a kind of a questionnaire that contains the objective characteristics of the future package, such as the number of files, registry entries, the size of the installed application, controlled services or drivers, dependencies, etc. Alternatively, you can use PACE Suite where complexity estimation report is one of the features. According to the estimation, we can determine approximate complexity of the packaging and based on the estimated complexity, we can roughly determine the amount of time that will be needed to spend on packaging. This assessment can be used to forecast and assess the packaging costs.
- If during one of these stages there are some ambiguities, a packaging engineer should immediately clarify the issues with the software owner or the customer. This is very important to clarify all issues as early as possible to save time on bug fixing in the future.
When everything is clear, a packaging engineer can proceed to the actual packaging.
In case you are looking for an application packaging and virtualization tool, we invite to you to learn more about PACE Suite: https://goo.gl/tP3mkK Apart from complexity estimation, it offers advanced MSI editing capabilities, package validation and testing, and numerous other application packaging features.
About the author
Dmitry Puzanov is an experienced IT specialist, a leader of Infopulse application packaging team and an analyst in the packaging sphere with 10+ years of experience in support engineering, networking, software installation development, and IT management.
In the previous article, we discussed the various types of non-virtual packages and gave some practical advice for application packaging. Now, we will move on to virtual packages and begin with Microsoft App-V as one of the most widely used virtualization formats.
The process of creating virtual packages is called virtualization. Application virtualization is the technique of separating the application configuration layer from the operating system. It enables applications to run on clients – desktops, servers, and laptops – without actually being installed on them and to be administered from a central location. With applications installed on a centralized server using this method, users of application virtualization solutions can access that software from whatever particular operating system their computers are running.
App-V is a widespread application virtualization and streaming solution from Microsoft. App-V enables you to make applications available to the end users without installing the applications directly on end user computers. App-V transforms applications into centrally managed services that are never installed and don't conflict with other applications. This is made possible through a process known as “sequencing the application”, which enables each application to run in its own self-contained virtual environment on the client computer. The sequenced applications are isolated from each other. This eliminates application conflicts, but the applications can still interact with the client computer
App-V is a part of the Microsoft Desktop Optimization Pack (MDOP) and requires additional licensing. The licensing is user-based and is either acquired by licensing Microsoft Desktop Optimization Pack (MDOP) for use on client operating systems or as part of the Microsoft Remote Desktop Server Client Access License for use on Remote Desktop Servers. MDOP is a suite of technologies available as a subscription for Software Assurance customers. There also exists a licensing model that exists for hosting (cloud services) providers.
App-V 5.1 Environment Overview
Microsoft Application Virtualization (App-V) 5.1 enables administrators to deploy, update, and support applications as services in real time, on an as-needed basis. Individual applications are transformed from locally installed products into centrally managed services and are available wherever you need, without the need to pre-configure computers or to change operating system settings.
App-V consists of the following elements:
· App-V Management Server that provides a central location for managing the App-V infrastructure, which delivers virtual applications to both the App-V Desktop Client and the Remote Desktop Services (formerly Terminal Services) Client. The App-V Management Server uses Microsoft SQL Server® for its data store, where one or more App-V Management Servers can share a single SQL Server data store. In addition, it authenticates requests and provides security, metering, monitoring, and data gathering. Active Directory and supporting tools are used to manage users and applications. The server has a management site that lets you configure the App-V infrastructure from any computer: you can add and remove applications, manipulate shortcuts, assign access permissions to users and groups, and create connection groups. Finally, the App-V Management Server enables communication between the App-V Web Management Console and the SQL Server data store. These components can all be installed on a single server computer, or on one or more separate computers, depending on the required system architecture.
· App-V Publishing Server provides App-V Clients with entitled applications for the specific user and hosts the virtual application package for streaming.
· App-V Desktop Client retrieves virtual applications and publishes the applications to the clients. It also automatically sets up and manages virtual environments at runtime on Windows endpoints, as well as stores user-specific virtual application settings, such as registry and file changes, in each user's profile.
· App-V Remote Desktop Services (RDS) Client enables Remote Desktop Session Host servers to use the capabilities of the App-V Desktop Client for shared desktop sessions.
· App-V Sequencer is a wizard-based tool that you use to transform traditional applications into virtual applications. The Sequencer produces the application “package,” which consists of:
a) a sequenced application (APP-V) file;
b) a Windows Installer file (MSI) that can be deployed to clients configured for stand-alone operation;
c) Several XML files including Report.XML, PackageName_DeploymentConfig.XML, and PackageName_UserConfig.XML. The UserConfig and DeploymentConfig XML files are used to configure custom changes to the default behavior of the package.
What’s inside an App-V package
To create a package as it has been mentioned in the previous paragraph, you will need a sequencing software. The sequencing process creates virtualized application with the following files:
.appv – the primary package file, which contains the captured assets and state information from the sequencing process. The architecture of the package file, publishing information, and registry are in a tokenized form that can be reapplied to a machine and to a specific user upon delivery.
.msi – executable deployment wrapper that you can use to deploy .appv files manually or by using a third-party deployment platform.
_DeploymentConfig.XML – a file used to customize the default publishing parameters for all applications in a package that is deployed globally to all users on machines that are running the App-V client.
_UserConfig.XML – a file used to customize the publishing parameters for all applications in a package that is a deployed to a specific user on a computer that is running the App-V client.
Report.xml – a summary of messages generated during the sequencing process, including omitted drivers, files, and registry locations.
.CAB (Optional) – a package accelerator file used to automatically rebuild a previously sequenced virtual application package.
.appvt (Optional) – a sequencer template file used to retain commonly reused Sequencer settings.
App-V for Windows 10
From the Windows 10 1607 build, the App-V for Windows 10 is built into the Enterprise edition of the OS. However, is still requires downloading, installing, enabling the server- and client-side components. Luckily, if you are already using App-V 5.x, you don't need to re-deploy the App-V server components as they haven't changed since App-V 5.0 was released. In other cases, the App-V server components can be obtained with the Microsoft Desktop Optimization Pack (MDOP) 2015 ISO. The App-V client is already included in the Windows 10 1607 and must be enabled with either Group Policy or PowerShell – here’s a step-by-step instruction. Finally, you will require a sequencer – you can use one that Microsoft offers or choose from a wide variety of sequencing software.
If you need help upgrading to App-V for Windows 10, we suggest using this guide from Microsoft. Also, App-V gradually approaches end of mainstream support (more information on this here) so now is a good time to plan the future migration.
Our own application packaging & virtualization tool PACE Suite allows you to sequence and edit App-V 5.x packages, as well as offers full support of App-V for Windows 10. Learn more about PACE Suite: https://goo.gl/tP3mkK
you to try the latest version of our application packaging & visualization
tool PACE Suite. Our 4.2 release has just gone live, and you can read the full
Among the improvements are:
- Support of App-V for Windows 10 (the client included in 1607 build).
- MSI packaging now runs several times faster.
- Enhanced permission settings management.
- And more!
We’re also gathering feedback from the packaging professionals, so any comments are appreciated!