With the Emergence of App-V 5, we no longer have PKG files structure under virtual Drive (generally as Q:\) as against in APP-V 4. The changes made by the user are hidden in various folders and registry keys. Essentially, file changes are stored under:
- %APPDATA%\Microsoft\AppV\Client\VFS (for roaming appdata)
- %LOCALAPPDATA%\Microsoft\AppV\Client\VFS (for everything else)
While registry changes are stored under:
But due to certain limitations of APP-V 5.0, or due to the flaw in the designing of the application, certain files and registries may not be written in the above mentioned location. This depends on, the environment under which your application is running has:
- UAC enabled
- App is not triggered as administrator
- The app is 32-bit
- The app has no embedded or external mechanism to tell it which execution level to use ( i.e. as Invoker, highest Available, require Administrator)
Then the application or the sequencer has the tendency to re-direct the failed “writes” attempt to the below mentioned location via a process known as UAC file Virtualization.
During my practice over such applications, I figured out that since redirection happens to a specific location, it is advisable to include the above two locations under Parse Items list after removing the same from Exclusion items list. (Refer the figure below). This is done so that the Application does not fail from launching a shortcut.
Example of UAC File Virtualization (With UAC enabled):
Consider a case where UAC is enabled:
After Sequencing the app, launch the shortcut in the application (to create feature block 1) from the Start Menu instead of launching it from the conventional sequencer itself.
Once the shortcut is launched, the application with the help of sequencer mechanism will redirect all the run time data to the above said locations, as shown below:
If the Parse Items list does not contain the above two locations, the sequencer will show it in the form of a warning in a dialogue box as shown below:
Consequently, the application will fail to launch.
Disclaimer: Developer’s Corner Section of ISHIR blog is contributed and maintained by independent developers. The content herein is not necessarily validated by ISHIR.