App-V 5.0 OS Integration – Part 4 – State Changes

Share on facebook
Share on twitter
Share on linkedin
Share on reddit
Share on stumbleupon

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.

Registry

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?

paint

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.

paint1

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:

reg

Here we can actually see the amended keys:

reg1

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.

reg2

In App-V 4.x we had a repair option for our packages and we have kept that with 5.0.

repair

By clicking repair we clear down the registry changes as described above.

reg3

Our package therefore returns back to its golden state it was initially delivered in.

paint2

File System

Let’s take a look at what happens when a file based change is made to a package after it is deployed.

vlc1

I’m going make a simple cosmetic change to VLC Player above and change the toolbar from being below the video to above.

vlc2

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.

folder

Drilling into the appropriate folder we can actually locate the .INI file where our customisation has been stored.

folder1

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.

folder2

Returning our package to a golden state with the toolbar beneath the video again!

vlc3

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

Part 1 – Package Format

Part 2 – File System Cache

Part 3 – Registry

Part 4 – State Changes

 

services banner1

Leave a Reply.

28 thoughts on “App-V 5.0 OS Integration – Part 4 – State Changes”

  1. Learned so much from your Tutorials….Thanks a million. Please chnage this link….it goes into your skydrive "to learn about how changes to non-user based locations are dealt with in App-V 5.0 click here. "

    • Glad you found the series useful Ashley, lots more to come so keep an eye out. Also thanks for making me aware of the SkyDrive link! All sorted now!

  2. You have a typo in the file system path. It must be %AppData%\Microsoft\AppV\Client\VFS, not %AppData%\Roaming\Microsoft\AppV\Client\VFS as you mention. Thanks for sharing this!

  3. excellent grip on the subject thanks thanks thanks thanks thanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanks

  4. Useful post, but I still have some problems in a roaming profile environment. Changes are saved when I close a program and start it again, but as soon as I logoff and logon in Windows my changes in the profile are gone. (HKEY_CURRENT_– USER\Software\Microsoft\AppV is resetted?) Is this as designed and if this is the case, how can I deal with this?

    • Hi Roy, This is not a default behaviour of the App-V client, I would suspect your profile management solution is doing something at either log off or log on and means App-V is unable to retain is customisation changes?

  5. Hi Tharim, great article! As the user based registry settings are virtualised under HKEY_CURRENT_– USER\Software\Microsoft\AppV\Client\Packages how are they persisted when an application is upgraded? I assume if the package GUID is consistent then the user settings remain but if I created a new package with a new GUID they would be lost as it would be seen as a completely seperate app…?

    Thanks

  6. Hi Thamim, great article.

    I am curious about knowing about Virtual Registry Tag in DeploymentConfig.xml. How does it get applied /mounted on to native registry when DeploymentConfig.xml takes effect.

    I am utilisng the DeploymentConfig.xml to deploy user registry key for sShortDate as below in UserConfiguration Section.

    Deployment is filtered for AD User Security Group. Where can we find this registry key creation in native registry.

    Will it be in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages\\Versions\\REGISTRY\– USER
    -or-
    HKEY_CURRENT_– USER\Software\Microsoft\AppV\Client\Packages\\REGISTRY\– USER\

  7. Registry Enabled=”true”
    Include
    Key Path=”\REGISTRY\– USER\Control Panel\International”
    Value Type=”REG_SZ” Name=”sShortDate” Data=”yyyy-MM-dd”
    Key
    /Include
    /Registry
    *The snippet was removed.. Hence removed the tags to post here

    • Where can we find this registry key creation in native registry?
      Will it be in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages\Package_GUID\Versions\Version_GUID\REGISTRY\– USER
      -or-
      HKEY_CURRENT_– USER\Software\Microsoft\AppV\Client\Packages\Package_GUID\REGISTRY\– USER\-SID-
      *removed the tags to post here

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.