Deploying ArcGIS Pro add-ins for Multiple users on Citrix

855
3
Jump to solution
04-25-2019 01:19 PM
JustinRowsell
New Contributor

My company is trying to deploy an ArcGIS Pro 2.3 add-in to end users accessing ArcGIS Pro via Citrix. We had found a workaround to install the add-in on the Citrix server and update the following registry key to make the add-in available to all users on the server.

Registry key for ArcGIS Pro to find Add-Ins

So when a user would connect to Pro through Citrix, the instance of Pro would find the add-in that was installed at the location we updated the registry key with. The .esriAddInX file was placed under "C:\ProgramData". This workaround had seemed to work initially, but there is a process that purges the user profiles on Citrix every night. This causes the dlls for the add-in to be purged from the user's profile that installed the add-in on the server. Therefore, when a user goes to access the add-in via Citrix the next day, the add-in is picked up by Pro, but when the tool is run, the dlls aren't there anymore and the tool can't function. 

Now that we have context, my question has two parts:

  1. Can one specify where the dlls for an add-in are unpacked to? If so, we will be able to install the dlls in a shared location. Then, the second part of this question would be a feasible second step to a solution.
  2. Is it possible to tell Pro where to look for the dlls of an add-in?. The thought is we install the add in where each user can access the .esriAddInX file through Citrix. Then, once we specify where the dlls are located, Pro loads the add in and looks for the dlls in said location (not in the user profile). Therefore, ArcGIS Pro will be able to read the files from a shared location on the server and the add-in will be available for all users accessing Pro through Citrix.

I'm also open to hearing any other ideas on how to approach the problem. We are using ArcGIS Pro 2.3.2.

Thanks in advance!

1 Solution

Accepted Solutions
Wolf
by Esri Regular Contributor
Esri Regular Contributor

Hi Justin,

 When you add additional well-known folders for Add-ins via the registry these folders are simply added to the ones you can manually add (given you have permissions) via the Pro "Add-in Manager".  See here: https://github.com/Esri/arcgis-pro-sdk/wiki/ArcGIS-Pro-Registry-Keys#settings-keys .

Once you add an esriAddinX add-in file to a well known add-in folder the following will happen:

  1. Each time Pro starts up, Pro checks those folders for esriAddinX files, and unzips the add-in content (in the 'esriaddinx' file) under the log-in user profile folder: ...\AppData\Local\ESRI\ArcGISPro\AssemblyCache.  
  2. When the add-in is instantiated by Pro that folder location (…\AppData\Local…) is used to load the Dlls required to run the add-in.
  3. If you delete the AssemblyCache folder completely step 1. above will repeat.

From your description I can't really tell what the problem is, but in summary the DLL location for add-ins cannot be changed, and I don't understand why that would be needed.

- Wolf

View solution in original post

0 Kudos
3 Replies
ChristopherZent
Esri Regular Contributor
0 Kudos
Wolf
by Esri Regular Contributor
Esri Regular Contributor

Hi Justin,

 When you add additional well-known folders for Add-ins via the registry these folders are simply added to the ones you can manually add (given you have permissions) via the Pro "Add-in Manager".  See here: https://github.com/Esri/arcgis-pro-sdk/wiki/ArcGIS-Pro-Registry-Keys#settings-keys .

Once you add an esriAddinX add-in file to a well known add-in folder the following will happen:

  1. Each time Pro starts up, Pro checks those folders for esriAddinX files, and unzips the add-in content (in the 'esriaddinx' file) under the log-in user profile folder: ...\AppData\Local\ESRI\ArcGISPro\AssemblyCache.  
  2. When the add-in is instantiated by Pro that folder location (…\AppData\Local…) is used to load the Dlls required to run the add-in.
  3. If you delete the AssemblyCache folder completely step 1. above will repeat.

From your description I can't really tell what the problem is, but in summary the DLL location for add-ins cannot be changed, and I don't understand why that would be needed.

- Wolf

View solution in original post

0 Kudos
JustinRowsell
New Contributor

Sorry for the late response as I've been waiting to confirm this worked. Knowing that's how Pro loads the dlls, it makes sense that we wouldn't change the dll location. It appears that deleting the assembly cache folder completely is working as described. I marked the answer as correct. Thanks for your time!