-Adam Kiu | Program Manager, Microsoft Application Virtualization
Disclaimer: This article describes the Beta version and does not include the complete list of features in the final product.
App-V 5.0 is the largest release since Microsoft acquired the application virtualization technology from Softricity in 2006. The App-V 5.0 release is focused on providing our customers with a seamless Windows experience for users, flexible virtualization options and powerful management. The new sequencer is released to support these goals. It has been updated to generate App-V 5.0 packages, ease the conversion of existing packages, and leverage and improve on the usability enhancements we made in App-V 4.6 Service Pack 1. For those new to the product, the sequencer is App-V’s packaging tool that turns native applications into virtual applications. Those unfamiliar should read the previous sequencer documentation first.
With App-V 5.0 Beta released to the public, I would like to talk about these Sequencer improvements and changes. The purpose of this article is to give you a high-level overview of what we’ve changed and why we feel that we’ve changed it for the better. This blog post will not delve into details on each change – if you would like to learn more, then I encourage you to read the latest documentation. In summary, we have made improvements in the following areas:
· Optimizations in the package creation process
· Simplifications and improvements to the advanced package editing process
· Changes around the output of the package
No more Q: – Primary Virtual Application Directory (AKA Install to Location)
In the previous versions of the Sequencer the best practice was to install to Q:. This virtual drive ended up being displayed on the client, and some users would end up seeing this App-V drive letter, and asking why it was there. We’ve heard the feedback and eliminated the Q: drive! The new best practice is to set the Primary Virtual Application Directory (PVAD) to the same path that the installer is installing its application to. Matching the installer path to the Primary Virtual Application Directory path allows the Sequencer to create a package that has optimal runtime performance.
You’ll notice that we no longer fill-in a default choice as we did before, and that the PVAD field has become mandatory. This is because the Sequencer does not guess the application installer’s directory. It is best for the application’s packager to enter the proper directory.
Stream Optimizing Packages
In App-V 5.0, we have a new form of streaming called on-demand streaming delivery. This means that when a user interacts with a virtual application before any files have been downloaded, the files needed for it to function will be streamed onto the client as they are requested by the application. For example, on first launch of the app, all resources needed to start it will be extracted from the package onto the client. This process is called stream faulting because the faults generated by the application when it cannot find the files it need triggers App-V to stream the files from the package. Once the application is launched, it will background stream the rest of package to the machine, stream faulting files on-demand if needed.
This means that there are now three options for optimizing streaming across networks:
· On-demand streaming delivery (Default): A package created and skipping the stream optimization step will be streamed on-demand to the machine via stream faults.
· Stream optimized: A package that goes through stream optimization process contains a primary feature block and this entire block is streamed before launching. This can be performed in the Stream Optimization step in the Sequencer, just like 4.6 SP1 release.
· Fully downloaded (not available in Beta): The package will be fully downloaded before it can be launched. There is a checkbox that allows you to specify all applications in the package to be fully downloaded.
Application Installers that require a reboot
The App-V Sequencer no longer simulates reboots that are detected – they are processed natively. By allowing reboots to natively occur, the Sequencer can do a better job in capturing pending operations created by the reboot. This increases the chances of creating a fully functional package. When the application being sequenced requests a restart, allow the machine to reboot and the sequencing machine will restart and resume in monitoring mode after the reboot completes. Note that you will have to log back into the account you were previously using for sequencing.
Creating add-on/middleware Packages
App-V 5.0 now allows multiple App-V packages to interact with each other through a concept called Virtual Application Connection. Unlike Dynamic Suite Composition in previous versions of the product, this is no longer a part of the Sequencing process so the add-on/middleware package creation process changes a little bit. To sequence an add-on package you’ll still see the same experience of natively installing the parent app, and then sequencing the add-on package. However, once completed, these apps are connected together via Application Connection Groups. For more details, please see the Beta documentation.
Shortcut/File Type Association (FTA) Editing
We have heard the feedback that this page is too important to be a part of a wizard workflow screen. To make things easier, in App-V 5.0 we have moved the shortcut/FTA editing page to the Advanced Edit screen after the package has been completed. This way, if a packager wants to continue editing shortcuts/FTAs, they can access that page independent of which application sequencing workflow they attempt. Note: Due to the way shortcuts and file type associations need to be unpacked onto the machine to be edited, when opening a package for edit, you must select the Update Application or Add New Application workflow to get to this tab.
Modifying an Existing Package
After you create a package in the Sequencer you can either stop (basic users), or continue to an advanced page that contains tabs allowing you to customize your package as you see fit. In App-V 4.6 SP1, this editing pane allowed you to modify the virtual registry, virtual file system, deployment configuration options, etc. In App-V 5.0, some of these options are no longer needed, have moved, or have been simplified. This section mentions each:
· No OSD tab. The new file format does not use OSD files. Metadata about application shortcuts are stored in the manifest and custom scripts are stored in new Dynamic Configuration files. Future blog posts will cover Dynamic Configuration in more detail.
· The Virtual File System (VFS) tab has been replaced with a Package Files tab. It is now possible to manipulate all files in the package, not just those in the VFS.
· The deployment tab has fewer options: Compression is always enabled, MSI packages are always output, security descriptors cannot be overridden (they follow the ones in the files and registry), and packages no longer need streaming protocol information.
Package Format Changes
The App-V 5.0 file format is very different from the previous formats. A quick look at what the Sequencer now produces:
· .appv package. This contains the sequenced application files, registry, stream map, and manifest.
· Deployment configuration and user configuration template files. These template files are used to customize package functionalities on the client during run-time.
· Report.xml file. This is a saved report of the Sequencing warnings and errors that occurred during the sequencing.
· MSI file. This is the MSI that allows administrators to deploy sequenced packages via MSI.
Customers that come from 4.6 and earlier have large amounts of packages in the previous file formats. The App-V 5.0 Sequencer comes with a PowerShell module called the Package Converter and allows customers to leverage their previous investments. The Package Converter lets you convert App-V 4.5 or higher packages directly to the new App-V 5.0 format. The Package Converter consists of two commands:
There are a few limitations to the package converter, so it is important to read the documentation before using it.