乐于分享
好东西不私藏

ArcGIS Pro 3.6 插件扩展全攻略.开发、调试、部署一站式教程

ArcGIS Pro 3.6 插件扩展全攻略.开发、调试、部署一站式教程

本文面向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("请先打开一个地图或场景""提示");            }        }    }}

具体截图如下:

3.保存文件。
4.检查命名空间:确保 Config.daml 里的className与代码里的命名空间。类名完全一致。

打开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/Debugbin/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技巧,都可以在评论区留言,我们一起相互帮助的学习和交流。

后续我们将继续分享实战经验,让更多的小伙伴~在使用区软件方面收获满满,记得点击上方关注我们哟!

另外后台私信我们,小伙伴们能获取很多相关测绘地理信息的软件和规范,同时可以加交流群,获取更多软件技能知识。