After publishing an application which used a UNC path for the location in Citrix XenApp. The application would fail to load via Citrix Receiver instead I would get the vague message “Cannot start app. Please contact your helpdesk”.
All of my other applications were fine.
Solution – Method 1:
The reason you get this message when loading a published UNC path is because broke publishing UNC paths by design when a feature was added to XenApp 6. XenApp 6.0 adds a new check called the Application Installation Check during load balancing to ensure that the published application exists on the server. The Citrix Services Manager service now ensures that the file specified in the application command line exists on the server selected by load balancing. If this check fails, the error message listed is displayed. When using a UNC path the check fails because the executable does not exit on the Citrix Server..
You can disable the “Application Installation Check during load balancing” feature for a published app using PowerShell. You will need to the Citrix PowerShell SDK installed.
Check if the “Application Installation Check during load balancing” is currently enabled or not for an application.
Add-PSSnapin "Citrix.XenApp.Commands" Get-XAApplication -BrowserName "Application Name"
To disabled “Application Installation Check during load balancing”
Add-PSSnapin "Citrix.XenApp.Commands" Set-XAApplication -BrowserName "Application Name" -LoadBalancingApplicationCheckEnabled $false
Reference : https://support.citrix.com/article/CTX125104
Solution – Method 2:
Method 1 worked best for but the below may for you.
I created a little VBS script to launch the application from its UNC path. I then updated the published application location to point to my new VBS script which I had saved local on each of my Xen App servers.
Set objShell = CreateObject("WScript.Shell") 'UNC Path to exe UNCPath = "\\server.mydomain.local\share\application.exe" 'Set the working directory objShell.CurrentDirectory = "\\server.mydomain.local\share\" objShell.Run(UNCPath)
or if you need to pass an argument to your application;
Set objShell = CreateObject("WScript.Shell") 'Get the passed argument Arg1 = Wscript.Arguments(0) 'UNC Path to exe UNCPath = "\\server.mydomain.local\share\application.exe" 'Set the working directory objShell.CurrentDirectory = "\\server.mydomain.local\share\" objShell.Run(UNCPath & " " & Arg1)