Apr 29, 2013 - 28 Comments - Virtual Vibes -

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

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.


File System

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

Part 1 – Package Format

Part 2 – File System Cache

Part 3 – Registry

Part 4 – State Changes


services banner1

28 Responses to App-V 5.0 OS Integration – Part 4 – State Changes

  1. Christoph Wegener

    Excellent series of tutorials! Keep them coming. They are extremely useful.

    26 Apr 2014 - Reply
    • Thamim Karim

      Thanks Christoph!

      26 Apr 2014 - Reply
  2. Ashley Millette

    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. "

    26 Apr 2014 - Reply
    • Thamim Karim

      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!

      26 Apr 2014 - Reply
  3. Dinesh

    Awesome!!! Hats off to you. Extremely helpful and comprehensible. Hope there are more to come in this series …

    26 Apr 2014 - Reply
    • Thamim Karim

      Glad you found the posts useful Dinesh! I post bi-weekly so keep an eye out for more content soon!

      26 Apr 2014 - Reply
  4. Ben De Vriese

    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!

    26 Apr 2014 - Reply
    • Thamim Karim

      Hi Ben,

      Thanks for taking to the time to let me know, I have now changed!

      26 Apr 2014 - Reply
      • Win Martin

        It actually is roaming if your AD has folder redirection enabled…

        19 Apr 2017 - Reply
  5. Prasad Namana

    excellent grip on the subject thanks thanks thanks thanks thanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanksthanks

    26 Apr 2014 - Reply
    • Thamim Karim

      lol no problems

      26 Apr 2014 - Reply
  6. Roy

    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?

    26 Apr 2014 - Reply
    • Thamim Karim

      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?

      26 Apr 2014 - Reply
  7. App-V 5.0 Ramp up Guide | VirtualVibes

    […] App-V 5.0 OS Integration – Part 4 – State Changes | Blog […]

    1 May 2014 - Reply
  8. Package Update Options: App-V 5.0 Sequencer | Virtual Vibes

    […] has been delivered, this typically includes user configurations and customisations, this topic is discussed here at length, this concept does need to be considered when updating […]

    7 Apr 2015 - Reply
  9. Alan Dooley

    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…?


    12 May 2015 - Reply
  10. Jan

    More more more !!! Thanks for your great explanation

    10 Jun 2015 - Reply
  11. Keerthi

    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
    HKEY_CURRENT_– USER\Software\Microsoft\AppV\Client\Packages\\REGISTRY\– USER\

    17 Feb 2016 - Reply
    • Keerthi
      17 Feb 2016 - Reply
  12. Keerthi

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

    17 Feb 2016 - Reply
    • Keerthi

      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
      HKEY_CURRENT_– USER\Software\Microsoft\AppV\Client\Packages\Package_GUID\REGISTRY\– USER\-SID-
      *removed the tags to post here

      17 Feb 2016 - Reply
      • Thamim Karim

        Hi, this will be a user registry entry i.e in HKCU

        26 Feb 2016 - Reply
  13. Jaya Subba Reddy

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

    spell mistake. its not App-V 4.x. It is App-V 5.x.

    12 Jul 2017 - Reply
    • Thamim Karim

      Sorry, I’m not sure there is a mistake. In App-V 4.x we had options to repair, this functionality has been retained in the 5.x product?

      14 Jul 2017 - Reply
  14. vinayak

    Excellent info ,Thanks lot

    6 Oct 2017 - Reply

Leave a Reply

Your email address will not be published. Required fields are marked *