ArcGIS Pro SDK for .NET

repository·master·Indexed 18 days ago

https://github.com/esri/arcgis-pro-sdk

A development toolkit for extending ArcGIS Pro using .NET. It supports four primary extensibility patterns: Add-ins, Managed Configurations, Plugin Datasources, and CoreHost applications. The SDK provides managed assemblies for core and extension functionality, NuGet packages for dependency and GDAL management, and Visual Studio extensions for project templates, utilities, and migration from version 2.x to 3.x.

Tokens
2.8K
Snippets
0
Records
13
Agent score
13%

What's inside ArcGIS Pro SDK for .NET

  1. New API features in ArcGIS Pro 3.7

    master

    ArcGIS Pro 3.7 introduces several API enhancements across various domains:

    • Knowledge Graph: Enhancements for Link Chart content (Add/Update/Remove), Investigation (query definitions, FFP configurations), and File-based Knowledge graphs.
    • 3D Analyst: LAS Class Code Editing, Shape interpolation using Terrain Layers, and Polygon to Multipatch conversion.
    • Editing: In-memory COGO traverse building and loading traverse courses into the UI.
    • Parcels: Geometry simplification (removing vertices between tangent segments) and circular arc parameter calculations.
    • Map Authoring: Programmatic Map grid settings, layer editability checks without edit sessions, and Vertical Coordinate System controls.
    • Geodatabase: Extension methods for Post and Reconcile (supporting Undo/Redo) and access to conflict information for traditional versioning.
    • Utility Network: Support for telecommunications domain networks.
    • Framework/Application: Custom toolbars for view panes, Addin Side by Side Loading (Named Custom Load Context), and Azure-based digital signing.
  2. Overview of ArcGIS Pro SDK for .NET extensibility patterns

    master

    The ArcGIS Pro SDK for Microsoft .NET allows developers to extend ArcGIS Pro using four primary extensibility patterns:

    1. Add-ins: Integrated 2D and 3D extensions built using modern .NET features like Task Asynchronous Programming (TAP), LINQ, WPF Binding, and MVVM.
    2. Managed Configurations: Used to modify or extend the behavior and appearance of ArcGIS Pro.
    3. Plugin Datasources: Allows for the integration of custom data sources into the ArcGIS Pro environment.
    4. CoreHost applications: Enables running ArcGIS Pro components within a standalone host application.

    Developers can leverage the full power of the ArcGIS Pro APIs to build highly integrated tools and interfaces.

  3. Access ArcGIS Pro SDK resources and documentation

    master

    Developers can access several external resources to assist in building ArcGIS Pro add-ins:

    • API Reference: The primary online documentation for all SDK classes and methods.
    • ProSnippets: A repository of ready-made code snippets specifically for ArcGIS Pro add-ins.
    • Community Samples: A collection of sample projects demonstrating various SDK capabilities.
    • DAML ID Reference: A wiki reference for ArcGIS Pro Desktop Application Markup Language (DAML) IDs.
    • FAQ: Frequently asked questions regarding the SDK.
    • SDK Icons: Official ArcGIS Pro SDK icons available via GitHub releases.
  4. System requirements for ArcGIS Pro 3.7 SDK

    master

    To develop add-ins for ArcGIS Pro 3.7, ensure your environment meets the following requirements:

    • ArcGIS Pro: Version 3.7
    • Operating System: Windows 11 (Home, Pro, or Enterprise, 64-bit)
    • .NET Runtime: Microsoft .NET Runtime 10.0.0 or better
    • IDE: Visual Studio 2026 (v18.4.1 or higher), including Community, Professional, or Enterprise editions
    • WebView2: If using the WebViewBrowser control, Microsoft Edge WebView2 Runtime version 132 or later is required.

    Third-party dependency note: If your add-in requires Newtonsoft Json, it is recommended to use version 13.0.3.27908 to match the version used by ArcGIS Pro 3.7.

  5. Use ArcGIS Pro SDK for .NET project and item templates

    master

    The proapp-sdk-templates.vsix package provides Visual Studio templates to quickly scaffold different types of ArcGIS Pro extensions. There is generally a one-to-one correspondence between a framework UI element extensibility point (e.g., button, tool, menu, dockpane) and an item template. Use the relevant item template to add the corresponding extensibility point to your Add-in.

    Project Templates

    • ArcGIS Pro Module Add-in Project: The standard template for creating ArcGIS Pro add-ins (available in C# and VB).
    • ArcGIS Pro Managed Configurations Project: For managed configurations (available in C# and VB).
    • ArcGIS Pro Plugin Project: For plugin-based extensions (C# only).
    • ArcGIS Pro CoreHost Application Project: For CoreHost applications (C# only).
    • ArcGIS AllSource Add-in Project: (C# only).

    Item Templates (UI Extensibility)

    Use these to add specific UI elements to an existing project:

    • Buttons & Palettes: ArcGIS Pro Button, ArcGIS Pro Button Palette, ArcGIS Pro Split Button.
    • Panes & Windows: ArcGIS Pro Dockpane, ArcGIS Pro Dockpane with Burger Button, ArcGIS Pro Pane, ArcGIS Pro ProWindow.
    • Tools: ArcGIS Pro Construction Tool, ArcGIS Pro Map Tool, ArcGIS Pro Layout Tool, ArcGIS Pro Table Construction Tool.
    • Menus & Controls: ArcGIS Pro Menu, ArcGIS Pro Combo Box, ArcGIS Pro Custom Control, ArcGIS Pro Embeddable Control.
    • Other UI: ArcGIS Pro Backstage Tab, ArcGIS Pro Gallery, ArcGIS Pro Inline-Gallery, ArcGIS Pro Property Sheet, ArcGIS Pro Drop Handler.
  6. Install the ArcGIS Pro SDK for .NET

    master

    The ArcGIS Pro SDK for .NET is installed via Visual Studio extensions. You must install two separate extensions:

    1. ArcGIS Pro SDK for .NET
    2. ArcGIS Pro SDK for .NET (Utilities)

    Migration from 2.x to 3.x

    Moving from version 2.x to 3.x is a breaking change. It is not a direct upgrade.

  7. Use ArcGIS Pro Extensions NuGet for dependency management

    master

    Instead of traditional file-based references to DLLs, you can use the ArcGIS Pro Extensions NuGet package to manage your add-in dependencies.

    To use this method:

    1. Set the NuGet Package Management format setting in Visual Studio to PackageReference.
    2. Reference the necessary ArcGIS Pro API assemblies via NuGet.

    For more details, see the ProGuide: ArcGIS Pro Extensions NuGet.

  8. Use ArcGIS Pro GDAL NuGet for raster data interfacing

    master

    To ensure compatibility with the GDAL version used by ArcGIS Pro, use the Esri.ArcGISPro.Gdal NuGet package rather than a generic GDAL installation. This ensures your add-in binds to the specific version used by the host application.

    Available Packages:

    • For ArcGIS Pro 3.6: Esri.ArcGISPro.Gdal.3.6.0.nupkg (GDAL 3.11.3, .NET 8)
    • For ArcGIS Pro 3.7: Esri.ArcGISPro.Gdal.3.7.0.nupkg (GDAL 3.12.2, .NET 10)
  9. Migrate ArcGIS Pro SDK 2.x extensions to 3.x

    master

    The proapp-sdk-migration.vsix package provides support for migrating existing ArcGIS Pro SDK 2.x extensions to ArcGIS Pro SDK 3.x for .NET.

    Note: During migration, the desktopVersion attribute in your config.daml will be automatically set to the current version of ArcGIS Pro installed on your system.

  10. Troubleshoot ArcGIS Pro SDK Addin and Configuration registration

    master

    RegisterAddin.exe File Association Issue

    If you are using both ArcGIS Pro and AllSource patches (specifically 3.3.3/1.2.1 or 3.4.1/1.3.1), the file association for .esriAddinX and .proConfigX files via RegisterAddin.exe may break.

    Solution: Refer to the Esri Knowledge Base article: Restore RegisterAddin.exe file association for ArcGS Pro SDK Addins and Configurations.

    ArcGIS Pro Extensions NuGet Debugging Issue

    When using ArcGIS Pro Extensions NuGet with ArcGIS Pro 3.3 or 3.4, installing the 3.3.3 or 3.4.1 patch may prevent add-ins or configurations from registering to the default well-known folder during compilation. This prevents debugging.

    Solution: Upgrade your Esri.ArcGISPro.Extensions30 NuGet package to either Esri.ArcGISPro.Extensions30 3.3.3 or 3.4.1, depending on your specific ArcGIS Pro release.

  11. Use ArcGIS Pro SDK for .NET utilities

    master

    The proapp-sdk-utilities.vsix package provides Visual Studio utilities to streamline development:

    • Pro Fix References utility: Fixes broken assembly references in ArcGIS Pro add-in, core host, configuration, or plug-in projects. This is useful when sharing add-ins or when references point to different installation locations than the recipient. It can be run on individual projects or all projects within a solution.
    • Pro Generate DAML Ids utility: Converts ArcGIS Pro Desktop Application Markup Language (DAML) string IDs into static string properties organized by element type (e.g., Button, Dockpane, Tool, Condition). This enables the use of Visual Studio IntelliSense for DAML IDs in your source code instead of manual typing.
  12. Reference ArcGIS Pro managed assemblies

    master

    The ArcGIS Pro APIs are provided as managed .NET assemblies installed with ArcGIS Pro. You do not need PIAs (Primary Interop Assemblies). You can reference these assemblies directly in your Visual Studio projects.

    Core Assemblies

    Located in {ArcGIS Pro Installation folder}\bin.

    AssemblyDescription
    ArcGIS.Core.dllProvides CIM, Geodatabase, Geometry and Utility Network APIs.
    ArcGIS.CoreHost.dllProvides Host.Initialize to initialize ArcGIS.Core.dll for stand-alone use.
    ArcGIS.Desktop.Framework.dllRequired for every add-in. Provides the application framework, add-in contracts, DAML support, and base classes.
    ESRI.ArcGIS.ItemIndex.dllProvides functionality to create and work with Custom items.

    Extension Assemblies

    Located in {ArcGIS Pro Installation folder}\bin\Extensions in individual subfolders (e.g., Mapping, Editing).

    AssemblyDescription
    ArcGIS.Desktop.Catalog.dllAccess to project content items (map, layout, style, folder items, etc.).
    ArcGIS.Desktop.Core.dllManage projects, access project events, and execute geoprocessing tools.
    ArcGIS.Desktop.Editing.dllAccess to the editing environment and core editing functionality.
    ArcGIS.Desktop.Extensions.dllExtension methods for ArcGIS Pro classes and base class for custom map tools.
    ArcGIS.Desktop.Geoprocessing.dllAccess to geoprocessing history items. (Note: Adds a reference to ArcGIS.Desktop.Core.dll).
    ArcGIS.Desktop.KnowledgeGraph.dllAccess to KnowledgeGraphs in maps and link charts.
    ArcGIS.Desktop.Layouts.dllManipulate layout elements and export to image formats.
    ArcGIS.Desktop.Mapping.dllCreate maps/layers, label features, perform queries, and manage styles/symbols.
    ArcGIS.Desktop.TaskAssistant.dllAccess the Tasks framework (open, close, export task items).
    ArcGIS.Desktop.Workflow.dllCreate and execute Workflow Manager Classic jobs and queries.
    ArcGIS.Desktop.Workflow.Client.dllRetrieve job ID and connection information for Workflow Manager.
    ArcGIS.Desktop.DataReviewer.dll(Deprecated) Manage Reviewer results, sessions, and batch jobs.