C:
We have several applications that install folders in the root of the C: drive. For most AppV5 implementations, this wouldn’t be an issue but we modify our PackageInstallationRoot folder so the token {AppVPackageDrive} turns into the drive letter specified in the PackageInstallationRoot registry key. For us, that’s the D: drive. This causes an issue because when you sequence an application to C: the application has an expectation for it to be there. Ideally, AppV takes care of that by the use of the tokens, but this breaks down when applications are hardcoded.
So far, we've been able to work around these issues by using junctions or setting the PVAD to the folder as the PVAD acts literally on the value specified, essentially becoming a hard coded, custom, token.
But now we have an application with THREE folders that are installed on the root of the C: and the application is hard-coded to look for two of them.
Hello my nemesis's |
If we do nothing this is the error we get after attempting to login to the program:
Looking at the appvve we can see the D: is coming up with those folders.
So this isn't going to work. How can we make it work?
After publishing this application on the server, we install ACT on the Citrix server.
Launch the "Compatibility Administrator (32-bit)"
Right-click on "New Database" and select "Create New > Application Fix"
Enter the details and browse to the application and click "Next"
Click 'Next' on the Compatibility Mode screen
Select 'CorrectFilePaths' and then click 'Parameters'
In command line, enter the path that should exist, then a semi-colon divider ";" and then the target path:
C:\webforms;C:\ProgramData\Microsoft\AppV\Client\Integration\A3E3C00D-19F1-47CB-9BA1-464DB85DC3CA\Root\VFS\AppVPackageDrive\webforms
and click "OK"
Try a Test Run.
And the application launches without any error messages!
Click 'Next'
Then Finish.
Click 'Save' then name your database and click "OK":
Save your fix now:
At this stage you now need to put your SDB file somewhere accessible for when the package is published. We put it on a fileshare.
Now, all we need to is install the fix.
Since we publish our application globally, I added the fix to the DeploymentConfig.xml:
```xml
sdbinst.exe</Path>
-q "\\healthy.bewell.ca\apps\appv\PortableApps\AppCompat_Fixes\PRIS_WEBFORMS_FIX.sdb"</Arguments>
</AddPackage>
sdbinst.exe</Path>
-u "\\healthy.bewell.ca\apps\appv\PortableApps\AppCompat_Fixes\PRIS_WEBFORMS_FIX.sdb"</Arguments>
</RemovePackage>
</MachineScripts
```
</div>