Thursday, August 14, 2014

AppV 5 - changing PackageInstallationRoot impacts AppVPackageDrive variable

I just sequenced an application (Epic) and it puts two folders on the root of the C drive.  C:\Epic and C:\Crashdumps.  When I published the application to our Citrix servers the application failed to launch.  Procmon'ing it I saw that Epic was unable to find C:\Epic.  I opened a command prompt and tried to cd /d C:\Epic which failed.  On a hunch I tried cd /d D:\Epic and lo and behold it was successful and I was put in that folder.  I investigated this and created a package with two folders on the root of the C:\.  They were C:\test and C:\test_happy_folder.  When I published the package on our Citrix servers I could not cd into them on the C:\ drive but I could because they were on the D:\ drive.  Examining the package it showed:


Why was it going to D:\?  We have our servers setup so that the PackageInstallationRoot registry key points to the D:\.



When I changed PackageInstallationRoot to be C:\AppVData\PackageInstallationRoot I could then cd /d C:\Epic without issue.  This is unfortunate but I do not think this was the expected behaviour because we sequence to C:.  To fix this I set the PVAD to C:\Crashdumps (which does expand out to the C: when specified in the sequencer, not the D:) and moved the C:\Epic folder to within a tokenized folder (programfiles\Epic) which correctly expands out to C:\Program Files\Epic.  I then needed to hunt down all config files and scripts that point to C:\Epic and update them to point to C:\Program Files\Epic.  Unfortunately, I do not know of a way to modify AppVPackageDrive to a drive letter without changing PackageInstallationRoot because I would love for my sequenced applications to stick to C:\ so I don't need to do any workarounds.

Essentially, I guess what I'm saying is I hope AppV 5, sometime in the future, allows you to either hard code the AppVPackageDrive variable to a specific drive letter, or use some other tokenized variable that points to a specific drive letter ({CDrive},{DDrive},{EDrive},{FDrive}, etc.)

No comments: