UE-V And App-V Integration
How to Publish a UE-V Template for an App-V Application
Microsoft User Experience Virtualization (UE-V) supports Microsoft Application Virtualization (App-V) applications out of the box, without the need for any modifications to either the App-V package or the UE-V template. However, an additional step is needed since you cannot run the UE-V Generator directly against a virtualized App-V application; you must first install the application locally, generate the template, then apply the template to the virtualized application. UE-V supports both App-V 4.5/4.6 and App-V 5.0 packages. To implement UE-V for App-V applications, use the following steps:
- Run the UE-V Generator against a locally installed application to create a settings location template. If you are using a built-in template such as the Microsoft Office 2010 template, you can skip this step.
- Install the App-V application package if you have not already done so.
- Publish the template to your Settings Template Catalog Path or manually install the template using the Register-UEVTemplate PowerShell cmdlet. Note: If you publish to the Settings Template Catalog Path, the client will not receive the template until the "Template Auto Update" scheduled task runs (3:30 AM by default). To manually start this process, open Task Scheduler, Expand Task Scheduler Library\Microsoft\UE-V, then right-click "Template Auto Update" on the right-hand pane and choose Run.
- Launch the App-V package.
To test replication, make a settings change in the App-V application, exit the application, then launch the application on a second machine that has the UE-V Agent installed and the template from step 3 configured.
How UE-V Interacts with App-V Applications
UE-V monitors for process launch by executable name and optionally file and product version numbers. The executable may be either locally installed or virtualized via App-V. When the application is launched, UE-V injects its agent DLL (Microsoft.Uev.AppAgent.dll) in to the App-V process, applies any settings stored in the user's Settings Storage Path, then allows the application to launch normally. UE-V is aware of App-V applications, and will automatically translate the relative file and registry paths to the virtualized location (as opposed to the physical location outside of the App-V environment).
For example, assume that an application named MyApp.exe has been virtualized using App-V 5.0 and has a UE-V Settings Location Template like the following:
<?xml version="1.0" encoding="utf-8"?>
<SettingsLocationTemplate xmlns='http://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate'>
<Name>MyApp</Name>
<ID>MyApp</ID>
<Version>1</Version>
<Processes>
<Process>
<Filename>MyApp.EXE</Filename>
<ProductVersion>
<Major Minimum="1" Maximum="1" />
</ProductVersion>
</Process>
</Processes>
<Settings>
<Registry>
<Path Recursive="true">Software\MyApp</Path>
</Registry>
</Settings>
</SettingsLocationTemplate>
When MyApp.exe version 1.0 launches inside the App-V bubble, UE-V will inject its Agent DLL in to the process and check for a settings storage package. If a package exists, UE-V will then make a call to apply the registry settings to HKCU\Software\MyApp. App-V will automatically translate this to its virtualized location (for example, HKEY_USERS\S-1-5-21-11111111-222222222-22222222-55555\Software\Microsoft\AppV\Client\Packages\F0790437-0020-407B-ACFB-C81A4E05681\REGISTRY\USER\S-1-5-21-11111111-222222222-222222222-55555\Software\MyApp). On exit, any changes to HKCU\Software\MyApp will be written back to the Settings Storage Path. Monitored files work similarly.
Note: Do not attempt to capture any paths under HKCU\Software\AppV in a UE-V template. These paths are already translated when App-V sees that a reference to the path has been accessed. Attempting to replicate data in this path will result in a subkey being created under the Software\AppV key that references an incorrect path and will result in the application not seeing its replicated data correctly.