--- title: Application Publishing and Client Interaction description: Application Publishing and Client Interaction author: jamiejdt ms.assetid: c69a724a-85d1-4e2d-94a2-7ffe0b47d971 ms.pagetype: mdop, appcompat, virtualization ms.mktglfcycl: deploy ms.sitesec: library ms.prod: w10 ms.date: 08/30/2016 --- # Application Publishing and Client Interaction This article provides technical information about common App-V client operations and their integration with the local operating system. - [App-V package files created by the Sequencer](#bkmk-appv-pkg-files-list) - [What’s in the appv file?](#bkmk-appv-file-contents) - [App-V client data storage locations](#bkmk-files-data-storage) - [Package registry](#bkmk-pkg-registry) - [App-V package store behavior](#bkmk-pkg-store-behavior) - [Roaming registry and data](#bkmk-roaming-reg-data) - [App-V client application lifecycle management](#bkmk-clt-app-lifecycle) - [Integration of App-V packages](#bkmk-integr-appv-pkgs) - [Dynamic configuration processing](#bkmk-dynamic-config) - [Side-by-side assemblies](#bkmk-sidebyside-assemblies) - [Client logging](#bkmk-client-logging) For additional reference information, see [Microsoft Application Virtualization (App-V) Documentation Resources Download Page](http://www.microsoft.com/download/details.aspx?id=27760). ## App-V package files created by the Sequencer The Sequencer creates App-V packages and produces a virtualized application. The sequencing process creates the following files:
File | Description |
---|---|
.appv |
|
.MSI |
Executable deployment wrapper that you can use to deploy .appv files manually or by using a third-party deployment platform. |
_DeploymentConfig.XML |
File used to customize the default publishing parameters for all applications in a package that is deployed globally to all users on a computer that is running the App-V client. |
_UserConfig.XML |
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 |
Summary of messages resulting from the sequencing process, including omitted drivers, files, and registry locations. |
.CAB |
Optional: Package accelerator file used to automatically rebuild a previously sequenced virtual application package. |
.appvt |
Optional: Sequencer template file used to retain commonly reused Sequencer settings. |
Name | Type | Description |
---|---|---|
Root |
File folder |
Directory that contains the file system for the virtualized application that is captured during sequencing. |
[Content_Types].xml |
XML File |
List of the core content types in the appv file (e.g. DLL, EXE, BIN). |
AppxBlockMap.xml |
XML File |
Layout of the appv file, which uses File, Block, and BlockMap elements that enable location and validation of files in the App-V package. |
AppxManifest.xml |
XML File |
Metadata for the package that contains the required information for adding, publishing, and launching the package. Includes extension points (file type associations and shortcuts) and the names and GUIDs associated with the package. |
FilesystemMetadata.xml |
XML File |
List of the files captured during sequencing, including attributes (e.g., directories, files, opaque directories, empty directories,and long and short names). |
PackageHistory.xml |
XML File |
Information about the sequencing computer (operating system version, Internet Explorer version, .Net Framework version) and process (upgrade, package version). |
Registry.dat |
DAT File |
Registry keys and values captured during the sequencing process for the package. |
StreamMap.xml |
XML File |
List of files for the primary and publishing feature block. The publishing feature block contains the ICO files and required portions of files (EXE and DLL) for publishing the package. When present, the primary feature block includes files that have been optimized for streaming during the sequencing process. |
Name | Location | Description |
---|---|---|
Package Store |
%ProgramData%\App-V |
Default location for read only package files |
Machine Catalog |
%ProgramData%\Microsoft\AppV\Client\Catalog |
Contains per-machine configuration documents |
User Catalog |
%AppData%\Microsoft\AppV\Client\Catalog |
Contains per-user configuration documents |
Shortcut Backups |
%AppData%\Microsoft\AppV\Client\Integration\ShortCutBackups |
Stores previous integration points that enable restore on package unpublish |
Copy on Write (COW) Roaming |
%AppData%\Microsoft\AppV\Client\VFS |
Writeable roaming location for package modification |
Copy on Write (COW) Local |
%LocalAppData%\Microsoft\AppV\Client\VFS |
Writeable non-roaming location for package modification |
Machine Registry |
HKLM\Software\Microsoft\AppV |
Contains package state information, including VReg for machine or globally published packages (Machine hive) |
User Registry |
HKCU\Software\Microsoft\AppV |
Contains user package state information including VReg |
User Registry Classes |
HKCU\Software\Classes\AppV |
Contains additional user package state information |
Description |
Stores package documents that are available to users on the machine, when packages are added and published. However, if a package is “global” at publishing time, the integrations are available to all users. If a package is non-global, the integrations are published only for specific users, but there are still global resources that are modified and visible to anyone on the client computer (e.g., the package directory is in a shared disk location). If a package is available to a user on the computer (global or non-global), the manifest is stored in the Machine Catalog. When a package is published globally, there is a Dynamic Configuration file, stored in the Machine Catalog; therefore, the determination of whether a package is global is defined according to whether there is a policy file (UserDeploymentConfiguration file) in the Machine Catalog. |
Default storage location |
This location is not the same as the Package Store location. The Package Store is the golden or pristine copy of the package files. |
Files in the machine catalog |
|
Additional machine catalog location, used when the package is part of a connection group |
The following location is in addition to the specific package location mentioned above:
|
Additional files in the machine catalog when the package is part of a connection group |
|
Description |
Created during the publishing process. Contains information used for publishing the package, and also used at launch to ensure that a package is provisioned to a specific user. Created in a roaming location and includes user-specific publishing information. When a package is published for a user, the policy file is stored in the User Catalog. At the same time, a copy of the manifest is also stored in the User Catalog. When a package entitlement is removed for a user, the relevant package files are removed from the User Catalog. Looking at the user catalog, an administrator can view the presence of a Dynamic Configuration file, which indicates that the package is entitled for that user. For roaming users, the User Catalog needs to be in a roaming or shared location to preserve the legacy App-V behavior of targeting users by default. Entitlement and policy are tied to a user, not a computer, so they should roam with the user once they are provisioned. |
Default storage location |
|
Files in the user catalog |
|
Additional user catalog location, used when the package is part of a connection group |
The following location is in addition to the specific package location mentioned above:
|
Additional file in the machine catalog when the package is part of a connection group |
|
Registry.dat from Package Store |
> |
%ProgramData%\Microsoft\AppV\Client\Vreg\{VersionGuid}.dat |
Location |
Description |
COW |
|
Package |
|
Native |
|
Location |
Description |
COW |
|
Package |
|
Native |
|
Policy | Description |
---|---|
AllowHighCostLaunch |
On Windows 8 it allows streaming over 3G and cellular networks |
AutoLoad |
Specifies the Background Load setting: 0 - Disabled 1 – Previously Used Packages only 2 – All Packages |
PackageInstallationRoot |
The root folder for the package store in the local machine |
PackageSourceRoot |
The root override where packages should be streamed from |
SharedContentStoreMode |
Enables the use of Shared Content Store for VDI scenarios |
Scenario | Description |
---|---|
Applications that are run as standard users |
When a standard user launches an App-V application, both HKLM and HKCU for App-V applications are stored in the HKCU hive on the machine. This presents as two distinct paths:
The locations are enabled for roaming based on the operating system settings. |
Applications that are run with elevation |
When an application is launched with elevation:
In this scenario, these settings are not roamed with normal operating system roaming configurations, and the resulting registry keys and values are stored in the following location:
|
VFS directory in package | Mapped location of backing store |
---|---|
ProgramFilesX86 |
C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\ProgramFilesX86 |
SystemX86 |
C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86 |
Windows |
C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows |
appv_ROOT |
C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT |
AppData |
C:\users\jsmith\AppData\Roaming\Microsoft\AppV\Client\VFS\<GUID>\AppData |
VFS directory in package | Mapped location of backing store |
---|---|
ProgramFilesX86 |
C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\ProgramFilesX86 |
SystemX86 |
C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\SystemX86 |
Windows |
C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\Windows |
appv_ROOT |
C:\users\jsmith\AppData\Local\Microsoft\AppV\Client\VFS\<GUID>\appv_ROOT |
AppData |
\\Fileserver\users\jsmith\roaming\Microsoft\AppV\Client\VFS\<GUID>\AppData |
Task type | Applicable rule |
---|---|
User-based task, e.g., publishing a package to a user |
The pending task will be performed after the user logs off and then logs back on. |
Globally based task, e.g., enabling a connection group globally |
The pending task will be performed when the computer is shut down and then restarted. |
User-based or globally based task | Where the registry key is generated |
---|---|
User-based tasks |
KEY_CURRENT_USER\Software\Microsoft\AppV\Client\PendingTasks |
Globally based tasks |
HKEY_LOCAL_MACHINE\Software\Microsoft\AppV\Client\PendingTasks |
Task | Details |
---|---|
Add the package to the computer |
This task is computer specific and you can perform it at any time by completing the steps in the Package Add section above. |
Publish the package |
See the Package Publishing section above for steps. This process requires that you update extension points on the system. End users cannot be using the application when you complete this task. |
Scenario | Requirements |
---|---|
App-V package is not in use when you try to upgrade |
None of the following components of the package can be in use: virtual application, COM server, or shell extensions. The administrator publishes a newer version of the package and the upgrade works the next time a component or application inside the package is launched. The new version of the package is streamed and run. Nothing has changed in this scenario in App-V 5 SP2 from previous releases of App-V 5. |
App-V package is in use when the administrator publishes a newer version of the package |
The upgrade operation is set to pending by the App-V Client, which means that it is queued and carried out later when the package is not in use. If the package application is in use, the user shuts down the virtual application, after which the upgrade can occur. If the package has shell extensions (Office 2013), which are permanently loaded by Windows Explorer, the user cannot be logged in. Users must log off and the log back in to initiate the App-V package upgrade. |
Handler | Description |
---|---|
Context menu handler |
Adds menu items to the context menu. It is called before the context menu is displayed. |
Drag-and-drop handler |
Controls the action upon right-click drag-and-drop and modifies the context menu that appears. |
Drop target handler |
Controls the action after a data object is dragged-and-dropped over a drop target such as a file. |
Data object handler |
Controls the action after a file is copied to the clipboard or dragged-and-dropped over a drop target. It can provide additional clipboard formats to the drop target. |
Property sheet handler |
Replaces or adds pages to the property sheet dialog box of an object. |
Infotip handler |
Allows retrieving flags and infotip information for an item and displaying it inside a popup tooltip upon mouse- hover. |
Column handler |
Allows creating and displaying custom columns in Windows Explorer Details view. It can be used to extend sorting and grouping. |
Preview handler |
Enables a preview of a file to be displayed in the Windows Explorer Preview Pane. |
Virtual Extension | Requires target OS Sequencing | Requires Global Publishing |
---|---|---|
Shortcut |
||
File Type Association |
||
URL Protocols |
X |
|
AppPaths |
X |
|
COM Mode |
||
Software Client |
X |
|
Application Capabilities |
X |
X |
Context Menu Handler |
X |
X |
Drag-and-drop Handler |
X |
|
Data Object Handler |
X |
|
Property Sheet Handler |
X |
|
Infotip Handler |
X |
|
Column Handler |
X |
|
Shell Extensions |
X |
|
Browser Helper Object |
X |
X |
Active X Object |
X |
X |