- 编写代码
- 生成类文件,注册。程序属性:目标平台改为 AnyCPU ,生成类文件。生成DLL文件,win10 平台可以右键Register注册到Desktop ,若右键没有,则应该使用ArcGIS自带的注册工具:ESRIRegAsm.exe 注册。此文件32位路径为:C:\Program Files (x86)\Common Files\ArcGIS\bin\ESRIRegAsm.exe。
-
将DLL文件拖拽到exe程序上就会有提示。在ArcMap中,将写好的工具加载进来
- 调试:程序属性:启动外部程序为ArcMap.exe,打断点,在ArcMap中执行工具,触发断点。
- 不断调试达到目标后,在ArcMap中成功实现一次,将Results结果窗口调出:
-
在成功的result上面右键发布服务。发布服务后,这时候如果直接执行,会报错:Error executing tool. ClipImageFailed to execute (ClipImage).
-
需要先在服务中停止该GP服务,在64位ESRIRegAsm.exe工具中注册Server,将DLL文件拖拽到exe程序上就会有提示。64位路径为:C:\Program Files\Common Files\ArcGIS\bin\ESRIRegAsm.exe。然后启动该GP服务。
- 注意事项
- IsLicensed()
public bool IsLicensed() { IAoInitialize aoi = new AoInitializeClass(); ILicenseInformation licInfo = (ILicenseInformation)aoi; string licName = licInfo.GetLicenseProductName(aoi.InitializedProduct()); switch (licName) { case "Advanced": case "Standard": case "Basic": case "EngineGeoDB": case "Engine": return true; default: return true; } }
-
public class ClipImageFunctionFactory : IGPFunctionFactory
- IsLicensed()