How To: Register function tools (DLL) for both Desktop and 64-bit Background Processing
Custom functions tools (DLLs) that are used in either Desktop or 64-bit Background Processing must be installed properly to be used in both products. Instructions provided explain how to properly register a function tool. Without these steps, the following error may be encountered when running a function tool in the background:
"000816: The tool is invalid"
The following steps explain how to properly register a function tool.
- Managed code must be compiled as ANY CPU. Set the 'Active Solution Platform' (inside Visual Studio) to Any CPU prior to compiling the dll. This is set through the configuration manager (BUILD > Configuration Manager).
- In Windows Explorer, open a 32-bit Command prompt from the following location:
In the command window, navigate to the 32-bit ArcGIS-Bin Common Files location:
cd C:\Program Files (x86)\Common Files\ArcGIS\bin
- Register the DLL using ESRIRegAsm.exe. For example:
- Choose the Desktop option from the popup window and select Register.
The function tool should work properly within Desktop. Optionally, test that the tool works with Background Processing (64-bit) turned off.
Note: Turning off background geoprocessing enables foreground processing, which only runs in 32-bit mode.The ESRIRegAsm utility successfully set references for the tool in the 32-bit registry locations.
- From the same command prompt window, generate a registry file (.reg) using the regfile switch with ESRIRegAsm.exe. For example:
ESRIRegAsm.exe C:\tmp\GPCalculateArea.dll /regfile:tool.regThe .reg file is created at the same location as the DLL.
- Open a 64-bit Command prompt from the following location:
- Install the .reg file into the 64-bit registry hive using the regedit command. For example:
regedit c:\tmp\tool.regAccept the warning by pressing Yes to continue. A message indicating the keys and values have been successfully added to the registry should appear.
- If ArcMap is open, re-start the application. Enable 64-bit Background Processing from the Geoprocessing Options and execute the function tool.