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: C:\Windows\SysWOW64\cmd.exe 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.
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: