In previous parts of this series we looked at the App-V 5.0 package format, how it sits on our client OS in the file system cache and how the registry works. So that’s all well and good but what about when about when users make customisations to packages, how do we handle state changes?
There are two types of changes that can be made to our packages, file based and registry based. Let’s take a look at how they are both handled in App-V 5.0.
In Part 3 of this series we really went behind the scenes of how the registry hangs together both from a native and virtual perspective for our App-V packages. So what happens when we make a customisation to an application that makes a registry based change?
I’m going to customise Paint.NET above by hiding the floating windows Tools, Colors, History and Layers. This change is obviously retained every time I launch Paint.NET thereof as a customisation for the user.
Let’s take a look at where in the registry those changes get stored. Under HKEY_CURRENT_– USER\Software\Microsoft\AppV\Client\Packages we will find a reference all packages, if we drill down we then find the sub structure for the particular package:
Here we can actually see the amended keys:
Remember the virtual view of registry also applies here as discussed in Part 3, so if we break into the bubble we find that these same keys appear to the package directly under HKEY_CURRENT_– USER\SOFTWARE\Paint.NET if we break into the bubble and open regedit.
In App-V 4.x we had a repair option for our packages and we have kept that with 5.0.
By clicking repair we clear down the registry changes as described above.
Our package therefore returns back to its golden state it was initially delivered in.
Let’s take a look at what happens when a file based change is made to a package after it is deployed.
I’m going make a simple cosmetic change to VLC Player above and change the toolbar from being below the video to above.
Of course this change is kept with following launches of VLC Player. Now I know this app stores its changes in file system. In App-V 5.0 file based changes are stored in %AppData%\Microsoft\AppV\Client\VFS. Here we find a list of all our packages in GUID based folders.
Drilling into the appropriate folder we can actually locate the .INI file where our customisation has been stored.
Again triggering a repair will clean out this location. By the way we can trigger repairs via PowerShell too if we wish using the Repair-AppvClientPackage cmdlet.
Returning our package to a golden state with the toolbar beneath the video again!
Please note that everything we talked about above relates to changes made to user profile locations and settings we would want to roam, to learn about how changes to non-user based locations are dealt with in App-V 5.0 click here.
So there you have it! State changes in App-V 5.0, be sure to check out the previous posts in this series if you haven’t already. Also for a birds eye view of where all of these package assets go check out this post here.
App-V 5.0 OS Integration