Citrix has been working really hard to make sure that App-V 5 is fully supported in XA/XD. This is greatly appreciated and a key integration for a wide range of users. However, it doesn’t quite work like we would hope as there is a pretty big “Gotcha”- read on….
I deploy App-V and Citrix on a daily basis and teach hands-on classes to many of our clients and we have approached this a number of different ways. For users wanting a published desktop the traditional approach was to create published desktops in XA/XD and then deploy applications to the desktop using the standard App-V tools. The App-V client for desktop use would include setting GPO’s with the following settings
- Enable Package Scripts
- Reporting Server
- Configure publishing servers
Simple, effective and worked great. Configure Citrix, add the App-V client to the image and then configure App-V and allow the two to do their functions. This is still the method that needs to be followed for published desktops utilizing App-V applications.
For published applications, if you configure your environment in this way currently, things just don’t seem to function properly. The generic message “Cannot start app” starts to appear. This is where the problem currently lies.
To help with this, Citrix has recently introduced a node for Desktop Studio that handles app publishing for App-V applications within their Citrix’s console. According to the document released by Citrix (https://docs.citrix.com/en-us/xenapp-and-xendesktop/7-7/install-configure/app-v.html) it says to follow the Microsoft practices and then turn off the Microsoft practices.
Why would I configure all the best practices from Microsoft?!?!?! According to the Citrix document, it will stop published applications from launching if you leave the best practices enabled. What is neglected to be said in the article is why that happens. The Citrix built tool CTXAppLauncher.exe is designed to perform the launch mechanism of the App-V Application. This is what performs the communication to the App-V Publishing server and packages.
If you want to use published applications, we will need to follow the Citrix documentation to invoke the CTXAppLauncher. Ok…. So I will configure it for publishing applications. The key to this is to make sure that the UserRefreshOnLogon setting for a publishing server is set to FALSE. When this is set to false, during the login process, Citrix will contact the publishing server, download and add the package to the client and launch. This is great, but now I can’t have the users Refresh their application on logon for a desktop.
This translates to needing 2 delivery groups:
- One for applications
- One for Desktops
My feeling, is if App-V is in use correctly, I should be able to share the resources to help consolidate my environment.
The other issue is Load Balancing with App-V. Using Citrix’s GUI, it is impossible to add more than one server. If you were to use an LB name or DNS Round Robin, XA/XD will not be able communicate the App-V Publishing Servers. This means I have a single point of failure because of Citrix wanting to make their own method of publishing App-V. I know you can add more servers through POSH, but they do not show in the GUI. Most Admins are going to look in a GUI and not doublecheck the config in POSH.
Why is it necessary to create their own publishing methods instead of using the built-in solutions already provided by Microsoft? This seems to be a waste of time on their part.
In the end, I have found many ways for this to fail:
- Configure App-V for published desktops and apps
- Configure App-V for Load Balancing
- App-V applications will fail to launch if the App-V package is configured TargetInPackage=False (not documented by Citrix, but https://discussions.citrix.com/topic/350058-xendesktop-75-with-app-v-50-published-application-cannot-launch-application/). (This happens during sequencing and not by choice by the person doing the sequencing.) (Yeah, I know not covered, but a noteworthy point)
- Any combination of the above
App-V integration is supported and needed by the Citrix products. Just be sure to follow the Citrix document to the letter and everything should work except……..