App-V and Process Monitor

The number one tool in troubleshooting applications has been and still is Process Monitor – providing great insight into everything that happens in the background of an application. However, when combining App-V and Process Monitor – there are some challenges to see the entire background activity – especially when it comes to registry activity. For quite some time there has been things that haven’t been properly shown when troubleshooting using Process Monitor and attempting to view the activity within the registry for a virtual application.

Process Monitor does present us with quite a few different ways of starting – lets explore the possibilites;

image

Obviously – we could just start it and see what it spits out. Looking through the possible start-up switches presents quite a few different ways of starting procmon. For our specific scenario – the /hookregistry looks mighty tempting, but it states that it only works on x86 Vista. The announcement for the feature were on the Softgrid-blog and was a first turning point after Microsoft acquired Softricity.

This is only whats documented and if looking around the internet – we can find one additional method of troubleshooting App-V. /externalcapture is a more commonly known startup switch, but its not documented (as you can see above) and apart from some presentations by Microsoft and unofficial blog-entries – there isn’t a whole lot formally written down about this gem.

Key question – whats the best method of using Process Monitor to troubleshoot App-V applications?

Well – lets find out;
A specific application is selected – mainly because its small, it does access the virtual registry when it starts and hopefully we can understand the difference between these behaviors. A filter is applied to only include the process in question (opwin.exe) and all the tests are preformed on a Windows 7 SP1 x86 machine.

Test 1
procmon.exe
image
Result is 265 items in total

Test 2
procmon.exe /hookregistry
image
Result is 265 items in total

Test 3
procmon.exe /externalcapture
image
Result is 322 items in total

So – we can clearly see that /externalcapture provides more registry output than the other possible options. What is the difference?

Procmon.exe /externalcapture shows us quite a few entries that are not at all visible from all the other options we used – especially the below are never shown at all when using the startup switches from the first two test cases.

image

App-V and Appsense Application Manager

First, an apology is in place for the below screenshot. It is from an e-mail from a customer that had issues with a simple BAT-file executing and then producing the below result in their production environment (horrible quality). The below error is completely undocumented and never seen before error – initial thought was that it related to an obscure exit code from the BAT-file, however some great findings from a fellow project member Micah did show a different path.

The environment were based on Xenapp 6 with Appsense Application Manager and Environment Manager running in the background – this was essentially giving us at least 4 different technologies hooking into processes and therefore all beeing part of a potential issue with the application.

image

On a few particular servers the application did work though and a key difference were identified (not by meSmile ) – it related to configuration of Appsense Application Manager and effectively excluded the App-V processes from having hooks from it.

HKLM\Software\AppSense Technologies\Application Manager\Engineering\
AppHookEx (REG_SZ) with the value; sfttray.exe;sftdcc.exe

Applying the above to the production environment resolved the problem and gave a few hints to us that this could be a potential problem area for other technologies aswell – here is a thread on a similar topic within the Citrix-forums;
Problems launching streamed .BAT

App-V 5 beta–Other blog posts

Not excited enough yet? Some other people have written about it aswell – continue reading!
Introducing User Experience Virtualization (UE-V) and App-V 5.0

App-V 5.0 Beta released, what’s new/different?

Beta for App-V 5.0

Breaking into the new APP-V 5.0 APPV format

App-V 5.0 Beta: What happened to the OSDs?

App-V 5.0 Beta: The End of CSIDLs

APP-V 5.0 Beta Sequencing Review

APP-V 5.0 Client at a Glimpse

App-V 5.0 officially announced (with beta!)

Migrating packages from App-V 4.x to App-V 5.0

AppV 5.0: The 10GB Package

Don’t let App-V 5.0 derail your migration project: A strategic assessment of the impact of App-V 5.0 on your migration project

App-V 5.0 Beta, out now.

App-V 5.0: Add publishing server.

App-V 5.0: Where did my logs go?

App-V 5 Beta and Shortcuts – the case of the missing (& added) arguments

App-v beta 5

Powershell: Get command definition

App-V 5.0 der Knoten ist geplatzt

App-V 5.0 und UE-V Public Beta ist gestartet

Microsoft updates desktop virtualization line-up with App-V 5, User Experience Virtualization

App-v beta 5

Thought on App-V 5.0 Beta: Don’t stop your Windows 7 Migration

App-V 5.0 Sequencer – Sequencen und das Ergebnis

App-V 5.0 Beta veröffentlicht

Howto: Increase the Update Speed for Application Changes

Use App-V 5 Beta Publishing and Management Server with a Remote Database

TechNet Virtual Lab: MDOP: Microsoft Application Virtualization (App-V) 5.0 Overview

App-V 5 Beta Component Communication Overview

Updated Microsoft App-V File Specification

Walking through the App-V 5.0 Beta Server Setup (Part 1)

App-V 5 Beta Basic Troubleshooting

App-V 5.0 (Beta1) Shortcut Editing Tricks

App-V version 5.0 Beta

Just a preview

Application Virtualization 5.0 Beta Tutorial – Part 1

Technodge eBooks

Application Virtualization 5.0 Beta Tutorial – Part 2

Problems App-V Server 5.0 Beta

Application Virtualization 5.0 Beta Tutorial – Part 3

Working on Part 4 and 5 of the App-V 5.0 Beta series

Application Virtualization 5.0 Beta Tutorial – Part 4

App-V 5.0 Beta Server Install Tutorial – Part 5 (Final)

APP-V 5.0 Beta: The operation failed as the management server was not found.

Windows Reimagined – Where does App-V fit in – Part 2 ?

App-V 5 beta–features

Here comes a low-down of what we hope to expect!

Rewritten architecture to support the following;
Higher level of integration with the operating system and other applications, support things like;
Shortcuts
File Type Associations
Protocol Handlers
AppPaths
JumpLists
Com-objects

Not yet verified; Integration with default application handlers?
Shell Extensions?

A “working” shared cache-mode – easy to setup, easy to maintain – one-click and you are good to go!
Granular configuration of package – provide different users with different configurations
Per-machine configuration possibilities
Increased scripting possibilities to allow per-machine and per-user scripting
Easy to install client and to configure client (that has been a major problem)
Side-by-side migration from previous version of App-V
Converter of packages to support the new format of App-V
New openly available format – just rename it to .ZIP to view the contents
Powershell-support to administrate the entire environment
Connection Groups – DSC, however working!

The server
Its still alive? Apparently. Sighs… Apparently people like this. Well – it can´t be anything worse than what the previous one was. Does it distribute all types of packages (MSI, scripts, customer installers, virtualized applications)? No
Do I want it then? No
Sorry – I am not to excited about this part

What did they drop?
Windows XP support

App-V 5 beta– behind the scenes

This is what it looks like – no more Softgrid!

These are prerequisites that aren’t installed by the installer, but still required;
.NET Framework 3.5
.NET Framework 4.0
Windows Hotfix; http://support.microsoft.com/kb/2533623
These are prequisites that are installed by the installer, and required;
Visual C++ 2005
Visual C++ 2008
Visual C++ 2010

My general recommendation has always been to deploy .NET Framework natively along with all versions of Visual C++ (ALL – I can not stress this enough – ALL VERSIONS. Every RTM, SP and FIX!) aswell as J# and F#. App-V 5 continues this race and to be prepared for a future upgrade – get these prerequisites out right now. They will not only assist in the upgrade of the App-V Client, but will assist you in the deployment of applications – natively installed as well as virtualized ones.

Reviewing the documentation for install switches that might reveal features that are interesting looks aswell;
/AUTOLOAD – streaming will stick around.
/SHAREDCONTENTSTOREMODE – shared cache will become less of a hassle to setup.
/MIGRATIONMODE – we can do a side-by-side migration of App-V 4.X and 5.0
/ENABLEPACKAGESCRIPTS – Running scripts are not enabled by default – enable it at install time!

Now the registry has no more references to Softgrid – it is all about App-Vimage

To enable scripts – we are simply talking about a registry key! You can se this option via powershell or at install time using the previously mentioned switch. image

Migration Mode – will allow App-V 5 to take over previously own App-V 4.X associations / shortcuts ! It is required that you will have the RTM-version of 4.6 SP2 for this to be supported. image

It seems that the client is all prepared for Windows 8 and Internet Explorer 10!image

The Q: drive is no longer and instead all the content is stored in the clear – allows for much more integration to the OS and will move App-V into the next gear of application virtualization;

image

Shared cache? Oh boy! (from the docs);
To configure the App-V 5.0 Beta client to operate in shared content store mode, set HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Streaming\SharedContentStoreMode=1 and restart the computer running the App-V 5.0 Beta client.

The shared cache can be setup on deployment time using a switch for the installer – easy! What happens? When you enable this – it simply means that all the data for an application will not persist on disk. Compared to the old days of shared cache – this will be a breeze to maintain as we are working directly of the network. It does require network connectivity though – which all our clients that want to leverage shared will have, right?

App-V 5 beta Config Files–User Config

Lets continue with the details of the User Configuration-files!

Most of the pre-generated content of the file has been removed – the scripting part is what this post will  mostly deal with! Now we can deploy a per-user configuration – which will allow us to configure all options and deploy a package with a different configuration for a set of users! As opposed to the one common OSD-file, we can now have a single package and create several different sets of configuration files for different user groups. Shortcuts, protocol handlers, Apppaths, FTAs, scripts, COM-isolation – can now all be configured with different configuration for any per-machine deployment and per-user deployment! There we rarely need to clean-up the shortcuts in a package, but can rather do a post-packaging clean-up on whats get published on a client using a configuration file!

See the sample script that has been automatically generated from the App-V 5 beta – we can initiate quite a few different options and hopefully this can provide an even more valuable asset when it comes to setup our applications environment!

<!-- User Scripts Example - customize and uncomment to use user scripts -->
 <!--

<UserScripts>
 <StartProcess RunInVirtualEnvironment="true">
 <Path>VFS\ProgramFilesX86\App\dosomething.exe</Path>
 <Arguments>-WithArgs</Arguments>
 <Wait RollbackOnError="true"/>
 <ApplicationId>[{AppVPackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>
 </StartProcess>
 <ExitProcess>
 <Path>VFS\ProgramFilesX86\App\UnDoSomething.exe</Path>
 <Arguments>-WithArgs</Arguments>
 <Wait RollbackOnError="false"/>
 <ApplicationId>[{AppVPackageRoot}]\Contoso\ContosoApp.EXE</ApplicationId>
 </ExitProcess>

<StartVirtualEnvironment  RunInVirtualEnvironment="true">
 <Path>[{AppVPackageRoot}]\VFS\ProgramFilesX86\App\DoSomething.exe</Path>
 <Arguments>-WithArgs</Arguments>
 <Wait RollbackOnError="true"/>
 </StartVirtualEnvironment>

<TerminateVirtualEnvironment>
 <Path>[{AppVPackageRoot}]\VFS\ProgramFilesX86\App\UnDoSomething.exe</Path>
 <Arguments>-WithArgs</Arguments>
 <Wait RollbackOnError="false"/>
 </TerminateVirtualEnvironment>
 <PublishPackage>
 <Path>\\server\share\foobar.exe</Path>
 <Arguments>-WithArgs</Arguments>
 <Wait RollbackOnError="true" Timeout="30"/>
 </PublishPackage>
 <UnpublishPackage>
 <Path>\\server\share\barfoo.exe</Path>
 <Arguments>-WithArgs</Arguments>
 <Wait RollbackOnError="false" Timeout="30"/>
 </UnpublishPackage>
 </UserScripts>

-->
 </UserConfiguration>

App-V 5 beta Config Files–deployment config

We previously looked at the sequencer and the client. There setup and usage seemed effortless – which is great as it has always been an administrative overhead that we had to worry about. Now – application deployment is never easy and always have to take quite a few possibilities in consideration. That is why it is such great fun – right? Lets look at how App-V will continue to make it easier for all of is! I have posted the complete contents of a deployment configuration file below (as a reference) – but will dive into some parts of it for further explanation.

Deployment config-concept
The file pasted below is a deployment config file. It is intended for configuring the client computer at the time the package is deployed. It may be used to write scripts that will install required software – such as drivers, OS-components and such. It will also setup the virtual applications interaction with the operating system (FTA, shortcuts etc etc)

GUID;<DeploymentConfiguration PackageId=”15ff5ef2-8a60-409e-9530-5535e541c028″ DisplayName=”Winrar 4.11 x86″ IgnorableNamespaces=”” xmlns=”http://schemas.microsoft.com/appv/2010/deploymentconfiguration”>
App-V has previously given quite of admins the headaches of conflicting GUIDs, application names, asset directories and what not. There were so much thinking going into NOT conflicting parts of a package with other packages that were deployed. This time around – it looks that this problem is gone. Lets hope that don’t mess things up Smile

Protocol Handlers;<URLProtocols Enabled=”true”>
Wow ! So if anyone saw me at the European App-V User Group – my greatest problem was never a technical limitation within packaging anything. Instead the greatest problem App-V has had over the years (and yes, any other competing product) is that of how the user interaction will work with a virtualized instance of any software. Suddenly – we will see Protocol Handlers? That’s great! We can now sequence Spotify AND allow users to click Spotify links! (and mail applications, and what not!).

App Paths; <AppPaths Enabled=”true”>
Application Paths are quite often used by software to locate required components. Think about generating a report and automatically open it in the associated software. Previously – this was often something that were noticed post-deployment of a virtualized software. All those reports suddenly generated an error – because the software were now virtualized and isolated. Not any more – App-V 5 will support AppPaths!

COM-isolation; <COM Mode=”Isolated”>
COM can be configured to now be available to the entire machine! Woho ! See the description above – COM is a different way of essentially doing the same thing. Another issue that previously was found out post-deployment and caused angry users to not like App-V – RESOLVED!

Scripts;<MachineScripts>
<PublishPackage>
<AddPackage>
<UnpublishPackage>
<RemovePackage>
Scripting seems to be completely remade – which is a good thing! First of all – the option of providing scripts to run at publishing or adding a package allows for a more controlled approach that can ensure prerequisites are available and ready. Since it is executed at the provisioning of a package – it is likely (haven’t tested it) that this will executed with elevated privileges. Perfect!

For the rest of the file – we have seen the configuration previously in the OSD-file, but the options are more elaborate and the XML-format always for an easy overview. Gone are the odd options, the unstructured layout – and hopefully all the undocumented possibilities!

&lt;!--
 This is your sample dynamic deployment configuration.  Use this to override machine wide and per user
 elements within your sequenced package.  The document is pre-filled with data from your sequenced package.
 Customize the document to fit your needs before adding your package.
 --&gt;
 &lt;DeploymentConfiguration PackageId=&quot;15ff5ef2-8a60-409e-9530-5535e541c028&quot; DisplayName=&quot;Winrar 4.11 x86&quot; IgnorableNamespaces=&quot;&quot; xmlns=&quot;&lt;a href=&quot;http://schemas.microsoft.com/appv/2010/deploymentconfiguration&amp;quot;&quot;&gt;http://schemas.microsoft.com/appv/2010/deploymentconfiguration&quot;&lt;/a&gt;&gt;
 &lt;!--

Per User Configuration

--&gt;
 &lt;UserConfiguration&gt;
 &lt;Subsystems&gt;
 &lt;!--OVERRIDE BEHAVIOR OF MANIFEST AND CONFIGURATION FILES
 Integration Subsystems can be enabled and disabled independently of the content.
 Thus if Shortcuts are enabled, The client will use the shortcuts contained within
 the manifest by default.

Each Integration Subsystem can contain an &lt;Extensions /&gt; node. If this child element
 is present, the client will ignore the content in the Manifest file for that subsystem
 and only use the content in the configuration file.

e.g. for the shortcuts subsystem,
 (A)
 if the user defined this in either the dynamic or deployment config file:
 &lt;Shortcuts  Enabled=&quot;true&quot;&gt;
 &lt;Extensions&gt;
 ...
 &lt;/Extensions&gt;
 &lt;/Shortcuts&gt;

Content in the manifest will be ignored.

(B)
 IF the user defined only this:
 &lt;Shortcuts  Enabled=&quot;true&quot;/&gt;
 Then the content in the Manifest will be integrated during publishing.

(C)
 note that if the user defines this:
 &lt;Shortcuts  Enabled=&quot;true&quot;&gt;
 &lt;Extensions/&gt;
 &lt;/Shortcuts&gt;

Then all the Shortcuts within the manifest will still be ignored.
 There will be no shortcuts integrated.--&gt;
 &lt;!--

Shortcuts

--&gt;
 &lt;Shortcuts Enabled=&quot;true&quot;&gt;
 &lt;Extensions&gt;
 &lt;Extension Category=&quot;AppV.Shortcut&quot;&gt;
 &lt;Shortcut&gt;
 &lt;File&gt;[{Programs}]\WinRAR\Console RAR manual.lnk&lt;/File&gt;
 &lt;Target&gt;[{AppVPackageRoot}]\Rar.txt&lt;/Target&gt;
 &lt;Icon&gt;[{AppVPackageRoot}]\Rar.txt&lt;/Icon&gt;
 &lt;Arguments /&gt;
 &lt;WorkingDirectory /&gt;
 &lt;Description&gt;Process RAR, ZIP and other archive formats&lt;/Description&gt;
 &lt;Hotkey&gt;0&lt;/Hotkey&gt;
 &lt;ShowCommand&gt;1&lt;/ShowCommand&gt;
 &lt;/Shortcut&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.Shortcut&quot;&gt;
 &lt;Shortcut&gt;
 &lt;File&gt;[{Programs}]\WinRAR\WinRAR help.lnk&lt;/File&gt;
 &lt;Target&gt;[{AppVPackageRoot}]\WinRAR.chm&lt;/Target&gt;
 &lt;Icon&gt;[{AppVPackageRoot}]\WinRAR.chm&lt;/Icon&gt;
 &lt;Arguments /&gt;
 &lt;WorkingDirectory /&gt;
 &lt;Description&gt;Process RAR, ZIP and other archive formats&lt;/Description&gt;
 &lt;Hotkey&gt;0&lt;/Hotkey&gt;
 &lt;ShowCommand&gt;1&lt;/ShowCommand&gt;
 &lt;/Shortcut&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.Shortcut&quot;&gt;
 &lt;Shortcut&gt;
 &lt;File&gt;[{Programs}]\WinRAR\WinRAR.lnk&lt;/File&gt;
 &lt;Target&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/Target&gt;
 &lt;Icon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/Icon&gt;
 &lt;Arguments /&gt;
 &lt;WorkingDirectory /&gt;
 &lt;Description&gt;Process RAR, ZIP and other archive formats&lt;/Description&gt;
 &lt;Hotkey&gt;0&lt;/Hotkey&gt;
 &lt;ShowCommand&gt;1&lt;/ShowCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;/Shortcut&gt;
 &lt;/Extension&gt;
 &lt;/Extensions&gt;
 &lt;/Shortcuts&gt;
 &lt;!--

File Type Associations

--&gt;
 &lt;FileTypeAssociations Enabled=&quot;true&quot;&gt;
 &lt;Extensions&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.7z&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.ace&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.arj&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.bz&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.bz2&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.cab&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.gz&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.jar&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.lha&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.lzh&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r00&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r01&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r02&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r03&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r04&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r05&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r06&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r07&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r08&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r09&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r10&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r11&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r12&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r13&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r14&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r15&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r16&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r17&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r18&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r19&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r20&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r21&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r22&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r23&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r24&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r25&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r26&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r27&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r28&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.r29&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.rar&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;ShellNew&gt;
 &lt;FileName&gt;[{AppVPackageRoot}]\rarnew.dat&lt;/FileName&gt;
 &lt;/ShellNew&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.rev&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR.REV&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR.REV&lt;/Name&gt;
 &lt;Description&gt;RAR recovery volume&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.1.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.tar&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.taz&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.tbz&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.tbz2&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.tgz&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.uu&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.uue&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.xxe&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.z&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR&lt;/ProgId&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Description&gt;WinRAR archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;Extension Category=&quot;AppV.FileTypeAssociation&quot;&gt;
 &lt;FileTypeAssociation&gt;
 &lt;FileExtension&gt;
 &lt;Name&gt;.zip&lt;/Name&gt;
 &lt;ProgId&gt;WinRAR.ZIP&lt;/ProgId&gt;
 &lt;ShellNew&gt;
 &lt;FileName&gt;[{AppVPackageRoot}]\zipnew.dat&lt;/FileName&gt;
 &lt;/ShellNew&gt;
 &lt;/FileExtension&gt;
 &lt;ProgId&gt;
 &lt;Name&gt;WinRAR.ZIP&lt;/Name&gt;
 &lt;Description&gt;WinRAR ZIP archive&lt;/Description&gt;
 &lt;DefaultIcon&gt;[{AppVPackageRoot}]\WinRAR.exe.0.ico&lt;/DefaultIcon&gt;
 &lt;ShellCommands&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ProgId&gt;
 &lt;/FileTypeAssociation&gt;
 &lt;/Extension&gt;
 &lt;/Extensions&gt;
 &lt;/FileTypeAssociations&gt;
 &lt;!--

URL Protocols

--&gt;
 &lt;URLProtocols Enabled=&quot;true&quot;&gt;
 &lt;!--

&lt;Extensions&gt;
 &lt;Extension Category=&quot;AppV.URLProtocol&quot;&gt;
 &lt;URLProtocol&gt;
 &lt;Name&gt;mailto&lt;/Name&gt;
 &lt;ApplicationURLProtocol&gt;
 &lt;DefaultIcon&gt;[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE,-9403&lt;/DefaultIcon&gt;
 &lt;EditFlags&gt;2&lt;/EditFlags&gt;
 &lt;Description /&gt;
 &lt;AppUserModelId /&gt;
 &lt;FriendlyTypeName /&gt;
 &lt;InfoTip /&gt;
 &lt;SourceFilter /&gt;
 &lt;ShellFolder /&gt;
 &lt;WebNavigableCLSID /&gt;
 &lt;ExplorerFlags&gt;2&lt;/ExplorerFlags&gt;
 &lt;CLSID /&gt;
 &lt;ShellCommands&gt;
 &lt;DefaultCommand&gt;open&lt;/DefaultCommand&gt;
 &lt;ShellCommand&gt;
 &lt;ApplicationId&gt;[{ProgramFilesX86}]\Microsoft Contoso\Contoso\contosomail.EXE&lt;/ApplicationId&gt;
 &lt;Name&gt;open&lt;/Name&gt;
 &lt;CommandLine&gt;[{ProgramFilesX86}\Microsoft Contoso\Contoso\contosomail.EXE&quot; -c OEP.Note /m &quot;%1&quot;&lt;/CommandLine&gt;
 &lt;DropTargetClassId /&gt;
 &lt;FriendlyName /&gt;
 &lt;Extended&gt;0&lt;/Extended&gt;
 &lt;LegacyDisable&gt;0&lt;/LegacyDisable&gt;
 &lt;SuppressionPolicy&gt;2&lt;/SuppressionPolicy&gt;
 &lt;DdeExec&gt;
 &lt;NoActivateHandler /&gt;
 &lt;Application&gt;contosomail&lt;/Application&gt;
 &lt;Topic&gt;ShellSystem&lt;/Topic&gt;
 &lt;IfExec&gt;[SHELLNOOP]&lt;/IfExec&gt;
 &lt;DdeCommand&gt;[SetForeground][ShellNewDatabase &quot;%1&quot;]&lt;/DdeCommand&gt;
 &lt;/DdeExec&gt;
 &lt;/ShellCommand&gt;
 &lt;/ShellCommands&gt;
 &lt;/ApplicationURLProtocol&gt;
 &lt;/URLProtocol&gt;
 &lt;/Extension&gt;
 &lt;/Extensions&gt;

--&gt;
 &lt;/URLProtocols&gt;
 &lt;!--

App Paths

--&gt;
 &lt;AppPaths Enabled=&quot;true&quot;&gt;
 &lt;Extensions&gt;
 &lt;Extension Category=&quot;AppV.AppPath&quot;&gt;
 &lt;AppPath&gt;
 &lt;Name&gt;WinRAR.exe&lt;/Name&gt;
 &lt;ApplicationPath&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationPath&gt;
 &lt;PATHEnvironmentVariablePrefix&gt;[{AppVPackageRoot}]&lt;/PATHEnvironmentVariablePrefix&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\WinRAR.exe&lt;/ApplicationId&gt;
 &lt;/AppPath&gt;
 &lt;/Extension&gt;
 &lt;/Extensions&gt;
 &lt;/AppPaths&gt;
 &lt;!--

COM

--&gt;
 &lt;COM Mode=&quot;Isolated&quot;&gt;
 &lt;IntegratedCOMAttributes OutOfProcessEnabled=&quot;true&quot; InProcessEnabled=&quot;false&quot; /&gt;
 &lt;Extensions&gt;
 &lt;Extension Category=&quot;AppV.COM&quot;&gt;
 &lt;COM&gt;
 &lt;x86&gt;
 &lt;Class&gt;
 &lt;ClassId&gt;{B41DB860-8EE4-11D2-9906-E49FADC173CA}&lt;/ClassId&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;InprocServer&gt;
 &lt;Library&gt;[{AppVPackageRoot}]\rarext.dll&lt;/Library&gt;
 &lt;ThreadingModel&gt;Apartment&lt;/ThreadingModel&gt;
 &lt;/InprocServer&gt;
 &lt;/Class&gt;
 &lt;/x86&gt;
 &lt;/COM&gt;
 &lt;/Extension&gt;
 &lt;/Extensions&gt;
 &lt;/COM&gt;
 &lt;!--

Objects

--&gt;
 &lt;Objects Enabled=&quot;true&quot; /&gt;
 &lt;!--

Virtual Registry

--&gt;
 &lt;Registry Enabled=&quot;true&quot;&gt;
 &lt;!--

&lt;Include&gt;
 &lt;Key Path=&quot;\REGISTRY\USER\Software\Foo&quot;&gt;
 &lt;Value Type=&quot;REG_SZ&quot; Name=&quot;Bar&quot; Data=&quot;NewValue&quot;/&gt;
 &lt;/Key&gt;
 &lt;Key Path=&quot;\REGISTRY\USER\Software\EmptyKey&quot;/&gt;
 &lt;/Include&gt;

--&gt;
 &lt;!--

&lt;Delete&gt;
 &lt;Key Path=&quot;\REGISTRY\USER\Software\Foo\BarDelete&quot;/&gt;
 &lt;/Delete&gt;

--&gt;
 &lt;/Registry&gt;
 &lt;!--

Virtual File System

--&gt;
 &lt;FileSystem Enabled=&quot;true&quot; /&gt;
 &lt;!--

Fonts

--&gt;
 &lt;Fonts Enabled=&quot;true&quot; /&gt;
 &lt;!--

Environment Variables

--&gt;
 &lt;EnvironmentVariables Enabled=&quot;true&quot; /&gt;
 &lt;!--

Services

--&gt;
 &lt;Services Enabled=&quot;true&quot; /&gt;
 &lt;/Subsystems&gt;
 &lt;!--

Applications

--&gt;
 &lt;Applications&gt;
 &lt;Application Id=&quot;[{AppVPackageRoot}]\WinRAR.exe&quot; Enabled=&quot;true&quot;&gt;
 &lt;VisualElements&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Icon /&gt;
 &lt;Description /&gt;
 &lt;/VisualElements&gt;
 &lt;/Application&gt;
 &lt;/Applications&gt;
 &lt;!-- User Scripts Example - customize and uncomment to use user scripts --&gt;
 &lt;!--

&lt;UserScripts&gt;
 &lt;StartProcess RunInVirtualEnvironment=&quot;true&quot;&gt;
 &lt;Path&gt;VFS\ProgramFilesX86\App\dosomething.exe&lt;/Path&gt;
 &lt;Arguments&gt;-WithArgs&lt;/Arguments&gt;
 &lt;Wait RollbackOnError=&quot;true&quot;/&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\Contoso\ContosoApp.EXE&lt;/ApplicationId&gt;
 &lt;/StartProcess&gt;
 &lt;ExitProcess&gt;
 &lt;Path&gt;VFS\ProgramFilesX86\App\UnDoSomething.exe&lt;/Path&gt;
 &lt;Arguments&gt;-WithArgs&lt;/Arguments&gt;
 &lt;Wait RollbackOnError=&quot;false&quot;/&gt;
 &lt;ApplicationId&gt;[{AppVPackageRoot}]\Contoso\ContosoApp.EXE&lt;/ApplicationId&gt;
 &lt;/ExitProcess&gt;

&lt;StartVirtualEnvironment  RunInVirtualEnvironment=&quot;true&quot;&gt;
 &lt;Path&gt;[{AppVPackageRoot}]\VFS\ProgramFilesX86\App\DoSomething.exe&lt;/Path&gt;
 &lt;Arguments&gt;-WithArgs&lt;/Arguments&gt;
 &lt;Wait RollbackOnError=&quot;true&quot;/&gt;
 &lt;/StartVirtualEnvironment&gt;

&lt;TerminateVirtualEnvironment&gt;
 &lt;Path&gt;[{AppVPackageRoot}]\VFS\ProgramFilesX86\App\UnDoSomething.exe&lt;/Path&gt;
 &lt;Arguments&gt;-WithArgs&lt;/Arguments&gt;
 &lt;Wait RollbackOnError=&quot;false&quot;/&gt;
 &lt;/TerminateVirtualEnvironment&gt;
 &lt;PublishPackage&gt;
 &lt;Path&gt;\\server\share\foobar.exe&lt;/Path&gt;
 &lt;Arguments&gt;-WithArgs&lt;/Arguments&gt;
 &lt;Wait RollbackOnError=&quot;true&quot; Timeout=&quot;30&quot;/&gt;
 &lt;/PublishPackage&gt;
 &lt;UnpublishPackage&gt;
 &lt;Path&gt;\\server\share\barfoo.exe&lt;/Path&gt;
 &lt;Arguments&gt;-WithArgs&lt;/Arguments&gt;
 &lt;Wait RollbackOnError=&quot;false&quot; Timeout=&quot;30&quot;/&gt;
 &lt;/UnpublishPackage&gt;
 &lt;/UserScripts&gt;

--&gt;
 &lt;/UserConfiguration&gt;
 &lt;!--

Machine Wide Configuration

--&gt;
 &lt;MachineConfiguration&gt;
 &lt;!--

Product Source URL Opt Out

--&gt;
 &lt;ProductSourceURLOptOut Enabled=&quot;true&quot; /&gt;
 &lt;Subsystems&gt;
 &lt;!--

Application Capabilities

--&gt;
 &lt;ApplicationCapabilities Enabled=&quot;true&quot;&gt;
 &lt;Extensions&gt;
 &lt;Extension Category=&quot;AppV.ApplicationCapabilities&quot;&gt;
 &lt;ApplicationCapabilities&gt;
 &lt;Reference&gt;
 &lt;Name&gt;WinRAR&lt;/Name&gt;
 &lt;Path&gt;Software\WinRAR\Capabilities&lt;/Path&gt;
 &lt;/Reference&gt;
 &lt;CapabilityGroup&gt;
 &lt;Capabilities&gt;
 &lt;Description&gt;WinRAR&lt;/Description&gt;
 &lt;FileAssociationList&gt;
 &lt;FileAssociation Extension=&quot;.rar&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.zip&quot; ProgID=&quot;WinRAR.ZIP&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.cab&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.arj&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.lzh&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.lha&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.ace&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.7z&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.tar&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.gz&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.tgz&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.uue&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.xxe&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.uu&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.bz2&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.tbz2&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.bz&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.tbz&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.jar&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.iso&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.z&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;FileAssociation Extension=&quot;.taz&quot; ProgID=&quot;WinRAR&quot; /&gt;
 &lt;/FileAssociationList&gt;
 &lt;/Capabilities&gt;
 &lt;/CapabilityGroup&gt;
 &lt;/ApplicationCapabilities&gt;
 &lt;/Extension&gt;
 &lt;/Extensions&gt;
 &lt;/ApplicationCapabilities&gt;
 &lt;!--

Machine Wide Virtual Registry

--&gt;
 &lt;Registry&gt;
 &lt;!--
 &lt;Include&gt;
 &lt;Key Path=&quot;\REGISTRY\Machine\Software\Foo&quot;&gt;
 &lt;Value Type=&quot;REG_SZ&quot; Name=&quot;Bar&quot; Data=&quot;Baz&quot;/&gt;
 &lt;/Key&gt;
 &lt;Key Path=&quot;\REGISTRY\Machine\Software\EmptyKey&quot;/&gt;
 &lt;/Include&gt;
 --&gt;
 &lt;!--
 &lt;Delete&gt;
 &lt;Key  Path=&quot;\REGISTRY\Machine\Software\Foo\BarDelete&quot;/&gt;
 &lt;/Delete&gt;
 --&gt;
 &lt;/Registry&gt;
 &lt;/Subsystems&gt;
 &lt;!-- Machine Scripts Example - customize and uncomment to use machine scripts --&gt;
 &lt;!--
 &lt;MachineScripts&gt;
 &lt;PublishPackage&gt;
 &lt;Path&gt;\\server\share\foobar.exe&lt;/Path&gt;
 &lt;Arguments&gt;-WithArgs&lt;/Arguments&gt;
 &lt;Wait RollbackOnError=&quot;true&quot; Timeout=&quot;30&quot;/&gt;
 &lt;/PublishPackage&gt;
 &lt;UnpublishPackage&gt;
 &lt;Path&gt;\\server\share\barfoo.exe&lt;/Path&gt;
 &lt;Arguments&gt;-WithArgs&lt;/Arguments&gt;
 &lt;Wait RollbackOnError=&quot;false&quot; Timeout=&quot;30&quot;/&gt;
 &lt;/UnpublishPackage&gt;

&lt;AddPackage&gt;
 &lt;Path&gt;[{PackageRoot}]\VFS\ProgramFilesX86\App\InstallDriver.exe&lt;/Path&gt;
 &lt;Arguments&gt;-DriverName Printer-Visibility Northamerica&lt;/Arguments&gt;
 &lt;Wait RollbackOnError=&quot;true&quot; Timeout=&quot;30&quot;/&gt;
 &lt;/AddPackage&gt;
 &lt;RemovePackage&gt;
 &lt;Path&gt;[{PackageRoot}]\VFS\ProgramFilesX86\App\InstallDriver.exe&lt;/Path&gt;
 &lt;Arguments&gt;-Uninstall&lt;/Arguments&gt;
 &lt;Wait RollbackOnError=&quot;false&quot; Timeout=&quot;60&quot;/&gt;
 &lt;/RemovePackage&gt;
 &lt;/MachineScripts&gt;
 --&gt;
 &lt;/MachineConfiguration&gt;
 &lt;/DeploymentConfiguration&gt;

App-V 5 beta Client

So – lets first clear out the base system that we will install the App-V Client on. It already has the App-V 4.6 SP2 beta on it – so we will simply try if the two can co-exist.

image

Starting the installer doesn’t seem to cause any problems (no pre-condition checks ?). The user interface seem to be very similar to the sequencer when it comes to install, and that is a really good thing. The previous experience of installing an App-V client was horrible and allowed for quite a few error prone mistakes. If you were setting up the App-V client previously – it was more realistic that there sub-optimal (that is an Microsoft term) values set for your deployment later on. So, lets investigate the client!

image

image

image

Wow – we are all finished installing the new App-V client and not a single option that related to the configuration of the client. Not even what directory it was supposed to be in!

image

An option on the start-menu is now presented. Considering that we are talking about enterprise customers for this product – removing this should certainly be an option. Lets hope that this start-menu shortcut will go away in the final product and we can let the user be never-knowing of how we do deploy software. They hired us to worry about that right?

image

The actual client interface looks a lot different. Wonder where they got their inspiration from?

image

After deploying the Winrar package that was previously made – to see any statistics update – the Refresh button had to be clicked. An annoyance, but a small one.

image

Using the MSI-file allowed for a silent install and pre-cached the entire application. Just the way we like it!

image

What a second – we just deployed a virtual application – and when I choose Open With. This is how Winrar is presented! WOW! We are off to a good start!

image

Looking at the shortcut on the start-menu – this is what executable is referenced;
%ALLUSERSPROFILE%\Microsoft\AppV\Client\Integration\15FF5EF2-8A60-409E-9530-5535E541C028\Root\WinRAR.exe

It seems that now we are simply virtualizing an application and NOT isolating it. This should allow for a whole new feature set of possibilities when it comes for the operating system to interact with virtual applications.

Also – the previous so annoying possibility of a naming conflict due toe Application Name + Application Version seems to be gone. A GUID-folder is now used to separate the package – truly effortless side-by-side deployment – HERE WE COME!

So far we have just brushed on the future possibilities of the product – lets see if we can’t dig deeper into it!

App-V 5 beta sequencer

Lets get started with the newly released App-V 5 beta sequencer and see what the administrative experience is of creating a package.

The installation of the sequencer is a pretty basic finish-installation (next, next, next – finish).

image

image

It seems that even in the future there will be possibility to leverage the Windows Update infrastructure – which should ease the process of rolling out updates. Considering that current hotfixes are released on a non-regular bases and aren’t automatically provided – there certainly is room for improvement before customer widely start adopting this feature. (and ehm, the fact that things sometimes broke when new versions of the client were released).

image

image

image

That’s it – the App-V 5 sequencer is now installed and ready to be used. Simple enough?

When first starting the sequencer – you will see a very familiar interface. The investments made in App-V 4.6 SP1 will glow through the entire UI – even though there are some major updates under the hood.

image

Since this is beta code – some options are greyed out or simply does nothing when beeing clicked. As we can see – Package Accelerators aren’t an option in the beta-release.

image

Reports will still be generated and give people a heads-up when performing the sequencing. This is one of the features producing real value for all customers and even the most experienced packager could benefit from this. Glad to see the concept is still around.

image

Previously – there was no technical difference between packages, however the sequencer user interface provided the possibility to create three different type of packages (you can see them below). I haven’t yet plowed through the entire thing, but there is a certain thought that there will not be three different type of packages. So – why present these options? Any customer that have looked at these have sometimes picked the wrong one and had to revert the entire snapshot and started over. This step – is unfortunately a bad one that still persists.

image

image

Here comes a major difference – compared to the previously looked at wizard. There isn’t a Q: drive available anymore – but you still have to pick a Primary Virtual Application Directory. Now, it isn’t optional. According to the below descriptive text – you are recommended to select the installation directory of your application. Well – I don’t know it? I had to drop the entire thing, install Winrar (which is the current choice of application to sequence), look-up the directory, revert the sequencer and then start over. I am suspecting that selecting a generic place (like, say… program files?) will be the lazy-mans option. Perhaps it will not make a difference? Perhaps the discussion in the future will not be about MNT / VFS, but wether or not selecting the ACTUAL installation directory or just a generic-place.

image

Look – no Q: drive!

image

Here comes some major differences – lets look at them more closely…

image

Reboots are processed quite differently and now actually does require a reboot. Good, bad? I can’t say – but it will defiantly be more like other packaging software around.

image

The actual monitoring mode seems to be around – basically the computer is your play ground and any change will be captured. In detail – no investigation has been done if there is a major difference in what will be captured or not. Lets assume that its new process and any changes invoked by those new processes.

image

The second step – allows you to run the software you have installed. This will allow for an easy identification of what software were captured and it seems to perform a really good job of filtering out any necessary shortcuts (help menus, uninstallers etc). When you run the software in this step – it is still not and will never be a test to verify if your package will be OK during deployment. Its simply a chance to preconfigure the software.

image

A final report is produced of what was noticed during the actual capture process that could cause an issue with our package.

image

For the sake of our testing – the customize option will be chosen. Mind though – for the very first time I am stating this;

I do believe you will be done at this step most of the time  and can safely choose Stop Now. There are quite a few reasons for this;
1. We will not have to worry about naming conflicts (more of this will be revealed when working with the client)
2. Per default – the package will run on any operating system.

image

The optimization for streaming (old feature block 1 – you know) – where you will determine the required bits and pieces of what the application _first_ needs to get started successfully if being streamed to a client. I can not repeat this often enough;
This is not a test of how the application will work on the client.

image

This is just a warning that the package will not be optimized for streaming. If you don’t stream – you don’t care.

image

As explained above – the default option is that the package will be allowed on all operating systems. This list also gives an indication of operating system-support. Windows XP is simply to old to be supported, I guess?

image

For the sake of blogging – the choice to continue to modify the package will be made as opposed to just wrapping it up.

image

A final summary of the reports generated previously.

image

The editing mode looks very similar to how it previously looked. However, a few key differences are there. No OSD-tab. So no OSD-files, right? We now have Package Files as opposed to Virtual File System. VFS could have been used still – right?

image

If looking at the options – we can see that several things relating to the configuration of the OSD-file are now missing. OSD-files really seem to be obsolete?

image

Parse items and exclusions items use a different way to make a package system independt – but the concept is still there.

image

image

As you can see – Package Files is the same as old Virtual File System. The content looks very similar and the variables now are resolved to the new style format to make them independent of the computer system.

image

Where the old OSD-tab used to be – there is now a summary of the applications and their configuration for deployment.

image

The actual package looks quite different. The .appv-file seems to contain any content. The rest if simply configuration for deployment or references of the reports generated.

image

However, the XML-style of configuration seems to stick around – but greatly enhanced. Seems that we can still do amazing things and we will have to options;

Deployment-configuration that will happen when the package is deployed to a machine

User configuration that will happen when an application is being started.

We will explore more of this later.

image

The .appv file is a zip-file. So if we rename it – we can just crack it open!

image

image

Address Book and Too Many Connections for Exchange 2010 SP1

Have you ever read the Address Book log file on a Client Access Server for Exchange 2010? Its quite interesting.

Well, not really.. It’s the log-file that is beeing produced by Microsoft Exchange Address Book Service – and details any attempts to use the address book (duh) – such as when connecting a client and looking up if the user is actually a user within the organization.

The below is an extract that occurred when all that the Outlook 2007 client connecting to the Exchange 2010 SP1 environment via RPC over HTTPC;
<date>,65690,0<ldap-user>,<ip>,<casserver>,ncacn_http,GetNewDSA,,6,Self,,Ntlm,
<date>,0,<ldap-user>,<ip>,<casserver>,ncacn_http,Bind,80004005,3
,,TooManyConnections,Ntlm,

Too Many Connections? Apparently there seems to be a limit to the to the amount of connections a specific user can have – as only one user was experiencing the problem. As opposed to the usual suspect of Client Throttling Policy – which we temporarily applied a custom one with no restrictions did not impact the behavior. Why did this occur?

Well – a single mailbox was heavily used by about 10 people. From it, they connected to several other mailboxes, and they also used mobile devices to synchronize their mail. That apparently hits a limit somewhere. Unfortunately it wasn’t to easy to find where the MSAB-service had a limit imposed – but it could be spotted in the article Configure Static RPC Ports on a Exchange 2010 Client Access server. In the article there is an Exchange 2010 Address Book Service section that details how to configure the RPC ports primarily. However, the section also contains a screenshot of a .config-file which is used by Exchange 2010 RTM and especially contains the value MaxSessionsPerUser. Perhaps this could be something? 

As it seems – the environment currently in question was an Exchange 2010 SP1 environment and apparently the previously used .config-file was now moved to the registry. However – nothing in the article (or any other article that was read) explained exactly what values could be entered. Some guess work where performed and MaxSessionsPerUser where simply entered as a DWORD value under the Address Book service configuration. As the .config-file had the default value of 50 – we simply entered a decimal value of 100 to see if the situation would improve.

regkey

Restarting the service – would of course close all connections. So we had to wait one day to confirm this would really resolve the problem…