
本文面向GISer开发者/ArcGIS二次开发人员,手把手教你用插件扩展Pro功能
ArcGIS Pro 3.6 作为主流GIS桌面端版本,依托**.NET SDK可轻松实现自定义工具、面板、地图操作、数据处理等功能扩展。
本文通过把环境配置→项目创建→功能开发→调试→部署分发。全流程整理成可直接落地的实操指南,新手也能跟着做!
学习之前来首轻音乐,快乐的学习吧。
一、前置准备:环境必须严格匹配
开发前先搭好合规环境,版本不兼容会直接报错,按以下清单核对:
核心软件:ArcGIS Pro 3.6.0.59527(正式版);
系统要求:Windows 11 64位(家庭/专业/企业版均可);
运行环境:Microsoft .NET 8.0.0及以上 Runtime;
开发工具:Visual Studio 2022(v17.13及以上)(社区版免费可用);
第三方依赖:
1.Newtonsoft.Json 固定用13.0.3.27908版本;
2.需网页视图:安装WebView2 Runtime 132及以上。
二、安装SDK:VS一键安装官方扩展
ArcGIS Pro 3.6 .NET SDK 是插件开发的核心工具,直接在VS里安装即可:
1.打开Visual Studio → 扩展 → 管理扩展;
2.搜索ArcGIS Pro SDK for .NET;
3.安装2个核心组件:
◦ArcGIS Pro SDK for .NET(项目模板);
◦ArcGIS Pro SDK for .NET (Utilities)(开发工具集)。
4.重启VS,完成安装。
开发工具集截图如下:

项目模板截图如下:

三、创建插件:5步新建项目
环境搭好后,快速创建第一个ArcGIS Pro插件:
5.VS → 创建新项目 → 搜索ArcGIS Pro Plug-in (C#);
6.命名项目、选择保存路径 → 点击创建;
7.项目自动生成基础结构:
◦Config.xml:插件UI配置文件(按钮/菜单/面板)
◦代码文件:业务逻辑实现
◦自动引用ArcGIS Pro核心API
小提示:项目模板支持C#/VB,新手优先选C#,资料更全。




四、核心开发:UI+代码双模块(附可复制示例)
ArcGIS Pro插件开发分**界面配置(DAML)和逻辑代码(C#)**两部分,以「自定义功能按钮」为例:
1. 配置DAML(定义插件按钮)
作用:控制插件在 ArcGIS Pro 里显示的按钮、名称、位置、图标。
操作步骤:
1.在 VS 解决方案资源管理器中找到 Config.daml 文件,双击打开。
2.找到 <modules> 节点,在里面添加 <controls> 区域。
3.完整可复制代码(直接粘贴替换原有 controls):
4.保存文件(Ctrl+S)。
<modules><moduleid="MyPlugin_Module"caption="我的插件"autoLoad="true"><controls><!-- 自定义测试按钮 --><buttonid="MyPlugin_TestBtn"caption="我的测试按钮"className="MyPlugin.TestButton"loadOnClick="true"tooltip="点击测试插件功能" /></controls><!-- 将按钮放到Add-In选项卡 --><tabs><tabid="Esri_AddInTab"caption="Add-In"keytip="Z"><grouprefID="Esri_AddInGroup" /><groupid="MyPlugin_Group"caption="我的工具"><buttonrefID="MyPlugin_TestBtn" /></group></tab></tabs></module></modules>
具体截图如下:

2. 编写 C# 逻辑代码(实现点击功能)
作用:按钮点击后执行的 GIS 操作。
操作步骤:
1.右键项目 → 添加 → 类 → 命名为 TestButton.cs → 添加。
截图如下:


2.打开 TestButton.cs,全选删除默认代码,粘贴以下完整代码:
using ArcGIS.Desktop.Framework.Contracts;using ArcGIS.Desktop.Mapping;using ArcGIS.Desktop.Framework.Dialogs;namespace MyPlugin{internal class TestButton : Button{protectedoverridevoidOnClick(){// 获取当前激活的地图var currentMap = MapView.Active?.Map;// 弹出提示框if (currentMap != null){MessageBox.Show($"当前地图名称:{currentMap.Name}", "插件运行成功");}else{MessageBox.Show("请先打开一个地图或场景", "提示");}}}}
具体截图如下:

打开Config.daml,在下添加按钮代码:
<controls><buttonid="MyPlugin_TestBtn"caption="我的测试按钮"className="MyPlugin.TestButton"loadOnClick="true" /></controls>
2. 编写C#逻辑(实现功能)
新建TestButton.cs文件,复制以下代码:
using ArcGIS.Desktop.Framework.Contracts;using ArcGIS.Desktop.Mapping;using ArcGIS.Desktop.Framework.Dialogs;internal class TestButton : Button{protectedoverridevoidOnClick(){// 获取当前地图var currentMap = MapView.Active?.Map;// 弹出提示MessageBox.Show($"当前打开地图:{currentMap?.Name ?? "未打开地图"}", "插件测试");}}
3. 常用扩展方向(按需调用API)
•地图/图层操作:ArcGIS.Desktop.Mapping.dll
•矢量数据编辑:ArcGIS.Desktop.Editing.dll
•布局出图:ArcGIS.Desktop.Layouts.dll
•地理处理工具:ArcGIS.Desktop.Geoprocessing.dll
五、调试运行:F5一键测试
开发完不用复杂配置,直接测试:
1.VS中按F5
2.自动启动ArcGIS Pro
3.在Pro顶部Add-In选项卡找到你的按钮
4.点击测试功能,关闭Pro自动结束调试
六、部署分发:一键安装给其他用户
插件开发完成后,打包成.esriAddinX格式即可分发:
1.右键项目 → 生成
2.在项目bin/Debug或bin/Release找到.esriAddinX文件
3.部署方式:
1)本地安装:直接双击文件,自动安装到Pro
2)批量部署:复制到路径 C:\Users\用户\Documents\ArcGIS\AddIns\ArcGISPro\
4.重启ArcGIS Pro,插件自动加载
七、效率神器:SDK自带3个实用工具
VS安装SDK工具集后,新增3个快捷功能,大幅提升开发效率:
1.Pro Fix References(Ctrl+F6,F1):一键修复API引用失效;
2.Pro Generate DAML Ids(Ctrl+F6,F2):自动生成DAML ID,支持智能提示;
3.Pro Migrate Project(Ctrl+F6,F4):旧版2.x插件一键迁移到3.6。
八、避坑指南:开发必看注意事项
1.引用规范:优先用ArcGIS Pro Extensions NuGet,设置为PackageReference格式
2.版本锁定:Newtonsoft.Json禁止混用其他版本,固定用13.0.3.27908
3.弃用提醒:DataReviewer API已弃用,4.0版本将移除,改用属性规则
4.冲突解决:3.6支持插件并排加载,避免不同插件相互干扰
总结
ArcGIS Pro 3.6 .NET SDK 插件开发,门槛低、扩展性强,能完美满足自定义GIS工具、业务流程定制、批量数据处理等需求。
我的原创每一篇文章都是用心去写的,如果文章对小伙伴们~有帮助,欢迎点赞、收藏,点击小爱心哟。同时转发给身边的GISer小伙伴~ 有任何疑问,或者想了解更多的ArcGIS pro技巧,都可以在评论区留言,我们一起相互帮助的学习和交流。
后续我们将继续分享实战经验,让更多的小伙伴~在使用区软件方面收获满满,记得点击上方关注我们哟!
另外后台私信我们,小伙伴们能获取很多相关测绘地理信息的软件和规范,同时可以加交流群,获取更多软件技能知识。
夜雨聆风