The ArcGIS Explorer Tasks Folder
Once ArcGIS Explorer has determined the details of a task which needs to be loaded, the next step is to load that task assembly.
This topic contains information on where the task assemblies are located on a machine, and how ArcGIS Explorer locates and load the tasks. Understanding this process can help you, as a custom task developer, to debug your custom task. Additionally, this will help you to understand deployment possibilities and requirements for task assembly naming, versioning, and strong naming.
Where task assemblies are stored
ArcGIS Explorer loads task assemblies from subfolders of the Tasks folder. The tasks folder is located in the current users profile; this means that there is one tasks folder for each Explorer user on a machine, and each user on the machine works with their own set of tasks.
The tasks folder is located in the '\Application Data\ESRI\ArcGIS Explorer\Tasks' subfolder of the users profile, which typically will be found on the root drive under 'Documents and Settings'. For example, for a user jbloggs on a machine where profiles are stored in the default C drive, the tasks folder will be:
C:\Documents and Settings\jbloggs\Application Data\ESRI\ArcGIS Explorer\Tasks\ |
How task subfolders are named
Under the Tasks folder, ArcGIS Explorer will create one subfolder for each custom task assembly. These task subfolders are created to help isolate each task assembly; this helps to avoid overwriting of similarly named files. The name of the tasks subfolder is based on properties of the assembly:
- The simple filename (without the file extension) forms the first part of the folder name.
- The culture of the assembly forms the second part of the folder name. If the assembly does not have a specific culture set, 'neutral' is used instead.
- The public key token of the assembly forms the third part of the folder name. If the assembly is not signed and therefore does not have a public key, 'null' is used instead.
- The version of the assembly forms the last part of the folder name. An assembly always has a version; if the source code does not specify a version using the AssemblyVersion assembly-level attribute, the compiler will create an assembly with a version of 0.0.0.0.
- The parts of the name are combined and separated by an underscore character, for example <Name>_<Culture>_<PublicKeyToken>_<Version>.
For example, for an assembly called MyCustomTask, with no specific culture set, a version of 1.0.0.0, which is not signed, the folder name will be MyCustomTask_neutral_null_1.0.0.0. However if the same assembly is attributed with a culture of English (US), and signed resulting in a public key token of '8fc3cc631e44ad86', then the folder name would be MyCustomTask_en-US_8fc3cc631e44ad86_1.0.0.0. Combining the profile path with the tasks folder location and name gives the complete path to a task assembly, for example:
C:\Documents and Settings\jbloggs\Application Data\ESRI\ArcGIS Explorer\Tasks\MyCustomTask_en-US_8fc3cc631e44ad86_1.0.0.0\MyCustomTask.dll |
Here you can see a Tasks folder containing a number of the Samples which are installed with the SDK.

For this reason:
- We recommend you strong name your task assemblies for ArcGIS Explorer, to help ensure unique task folder names.
- We also recommend you prefix your company name and product to the assembly, e.g ESRI.E2SDK or Company.Product.Task.dll.
These rules are not enforced, but will help to keep your task assemblies unique and identifyable.
For debugging purposes you may wish to build directly to this folder.
Other contents of a tasks subfolder
A task subfolder will contain an NMF file for each custom task within that assembly that has been added, the name of which follows the convention <Namespace>.<TaskUIName>.nmf. Take the example of a task assembly MyTasks.dll containing two custom tasks for which the TaskUI classes are called TaskUI1 and TaskUI2, which are both contained in the namespace MyTasks. If both of these tasks are specified in a map NMF, then the tasks subfolder will contain two NMF files, MyTasks.TaskUI1.nmf and MyTasks.TaskUI2.nmf.
A task subfolder may contain any number of other files required by your task assembly, such as supporting libraries, images or documentation. For example, if you have localized your custom task by providing alternative resources for multiple locales then when you build your custom task, Visual Studio may also create one or more subfolders each containing a satellie assemblies containing resources for a specific locale, and these resources should be deployed along with your custom task assembly. See the Localized Task Sample for more information. Alternatively if you have a solution which has multiple projects, the compile process may result in multiple assemblies being created. If your custom task relies on the items in these other assemblies, you should consisder them part of your custom task, and deploy them as well.
If a task is downloaded as a zipfile, all other contents of the zipfile will be unzipped to the same task folder.
Standard ESRI tasks are not installed to the Tasks folder; only custom tasks are located here. You may also notice a task subfolder called GPTasks; this is where ArcGIS Explorer stores information about any geoprocessing services which have been added as tasks to Explorer; the naming and contents of this folder will not follow the same rules as stated for custom tasks. For more information about the standard ESRI tasks, and about geoprocessing services as tasks, see the main ArcGIS Explorer application help.
If a task is not already on the machine in a task subfolder, then Explorer must download the task in order to use it. See the Task Download Location topic for more information.