Download links and version changes are located at the bottom of this page.
Introduction
I am a visual person. When I have a complex software problem, I work though developing a mental map of how things work. Not everybody works this way, but for those that do, this "App" might be of interest.
AppV_Client_Interaction, while technically an app, is really a documentation tool that displays the mental map I have been creating about how the App-V 5 client operates, especially as I try to come to grips with performance. This is a work in progress, and no doubt will improve over time.
While the basis of the concept comes from information found the AppV Client Interaction Guide document produced by Microsoft, as well as an interesting blog post by Thamin Karim (a Microsoft field operative in the UK), I found both of these efforts lacking in some areas. The results that are shown attempt to cover everywhere that the App-V client makes file and registry changes, with a particular focus on the lifespan of a virtual application package. So far, my focus has been on the initial deployment of the package and first run, so we don't have the lifespan wrapped up yet.
Much of the work comes from reading a lot of procmon traces. Probably 40 or 50 traces each with 1/2 to 1 million entries. And I also built a test harness and a number of "specialty apps"; apps built to expose how well (or badly) App-v handles certain things in your packages. By this summer I hope to provide more concrete numbers for more things, but a few things do pop out in the details that can be seen in this tool. For example, I estimate that a package with 4000 more folders than an identical package will add 1 second to the add-appvclientpackage step.
The tool shows all file and registry locations touched. These items are also color coded to indicate at what point in the lifecycle the item is created. Additional information on items is available in the form of a tooltip when the mouse is placed over an item.
Additionally, the Flow tab indicates actions taken by the client during the package lifespan, with particular attention taken to items that may cause more time for certain packages based on the package contents. Again, the best detail is in the mouse rollover tooltips that can't be seen in the static image below:
As I said, this is a work in progress. Some of the things noted in the tool, like the mysterious tmp files generated at package add and locked until a reboot or first run is complete, may turn out to be uninteresting and removed in the final version. I have also been developing my own names for things, such as the registry pre-staging that occurs well before the better known registry staging. I will be interested in hearing from others things that they have learned and incorporating into the tool also.
Version History
5.2.0.0: Initial version.
Download and Install Instructions
Here is the ZIP package:
Compressed exe for AppV_Client_Interaction (30KB ZIP )
No installer, just unpack and run. Requires .Net 4.0.