Skip to content
Charlie Macleod edited this page Nov 6, 2023 · 45 revisions

General

Is a development license required to build add-ins with the ArcGIS Pro SDK?

No development license is required for the Pro SDK itself, although a licensed installation of ArcGIS Pro is required for development and use of add-ins. The SDK can be used with any ArcGIS Desktop license level (Basic, Standard and Advanced) which Pro will use. Developers are able to create add-ins with functionality for a Desktop license level, and users of the add-in will need to have the appropriate level of license.

How do I provide feedback for the ArcGIS Pro SDK?

Please post to the ArcGIS Pro SDK Group on ESRI Community.

Can a namespace with an Internal subpath be used to create add-ins?

No. Anything with an Internal name component in a namespace (that is, a subpath component that uses the literal string Internal) is unsupported. It may not be used. None of these Internal methods are documented and since they are internal, are subject to change at any release.

Where can I find the ArcGIS Pro API Reference?

It is found at https://pro.arcgis.com/en/pro-app/latest/sdk/api-reference/.

Where can I find a complete list of the latest API changes?

Please consult the What's New for Developers page, API Changes section for the current release.

Which Pro assemblies are supported for the Pro SDK?

Consult https://pro.arcgis.com/en/pro-app/latest/sdk/api-reference/ for the complete list.

Any assembly with publicly scoped code that is not in this list is not supported.

What are the ways that ArcGIS Pro can be extended?

ArcGIS Pro can be extended with:

What is an add-in?

An add-in is an archive file containing an add-in assembly that references the Pro API. The assembly, along with a companion Config.daml file, can customize the Pro UI as well as add custom functionality to Pro (to automate a repetitive workflow or procedure, to add a custom tool or function, etc.).

Add-ins follow the same deployment model as was used at 10x, even though the underlying framework is different. The add-in package (".esriAddInX") is deployed to a well-known folder. By default, this is C:\Users\<Username>\Documents\ArcGIS\AddIns\ArcGISPro. There is an add-in manager utility for ArcGIS Pro the same as there was for 10x.

Consult ProConcepts Framework for more information.

Where do I manage my installed add-ins?

Go to the Add-in Manager page on the backstage of Pro.

What is a configuration?

An ArcGIS Pro configuration is an advanced customization of the application as compared to an add-in. Configurations are similar to add-ins but offer more ways to extend the application including customizing the splash screen and start-up page, customizing the ribbon, and customizing the start-up experience.

Configurations follow a similar deployment model to add-ins. The configuration package (.proConfigX) is deployed to the C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro\Configurations folder.

Consult ProConcepts Configurations for more information.

Can I install multiple configurations on a single machine?

Yes, but only one configuration can be loaded during startup. Consult ProConcepts Configurations for more information.

I have Configurations already installed in my Public User Documents Folder and they won't load.

The default location for Configurations is C:\Users\<UserName>\Documents\ArcGIS\AddIns\ArcGISPro\Configurations.

Consult ArcGIS Pro Registry Keys: UsePublicConfigurationFolders for more information.

Can Pro load multiple configurations per session?

No. Only one configuration can be loaded per session. Consult ProConcepts Configurations for more information.

Does the ArcGIS Pro SDK for .NET support stand-alone applications?

Use of Geometry and Geodatabase classes in ArcGIS.Core.dll is supported. Refer to ProConcepts CoreHost for more information.

Does the ArcGIS Pro SDK for .NET support automation?

No. Automation is supported via Python and the arcpy.mp module.

Can I include document content with my add-in

Yes. Consult ProGuide Content and Image Resources. Refer to Document content.

Can I use my add-in to install Toolboxes?

Yes. Consult ProGuide Content and Image Resources. Refer to Embedding Toolboxes.

Are the ArcGIS Pro Icons released with the ArcGIS Pro SDK?

No, the Pro icons will not be released. However, they can be referenced for use in your add-ins using a standard pack uri. See the below FAQ items for more information. Consult DAML ID Reference for Pro Icons

How do I use one of the ArcGIS Pro icons in my custom add-in?

To use one of the Pro icons in your add-in, follow the steps below:

  1. If you want to use a Pro icon on a ribbon button, then set the smallImage and largeImage attributes in the Config.daml equal to the packuri of the Pro icon you want to reference. For example, here we reference the stock select tool icon on a custom button:
<button id="..." caption="..." className="..."
  smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/SelectionSelectTool16.png" 
  largeImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/SelectionSelectTool32.png">
         <tooltip heading="Tooltip Heading">...<disabledText /></tooltip>
</button> 

(You can find all the pack URIs of all the Pro icons in your bin\Extensions\<Extension> folders in the extension DAML files).

  1. If you want to use a Pro Icon on a WPF button or other WPF control then set the relevant content property of the button or control in your <UserControl>.xaml. Use the pack URI of the Pro icon (or set it on a view model property). For example, here a WPF button on a dockpane user control is referencing the Pro clear select icon.
<Button Width="300" Height="50">
 <StackPanel Orientation="Horizontal">
   <Image Source="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/SelectionClearSelected16.png"/>
   <TextBlock Text="My Custom Button" VerticalAlignment="Center" />
 </StackPanel>
</Button>

If you plan to use one of the Pro icons in your add-in, it should be used for a similar purpose as the stock button or tool in Pro that also uses it (e.g. using select icons for a custom selection, edit icons for a custom edit tool, etc.). Using Pro icons in your own Add-ins for different purposes than the COTS tools can cause confusion with users.

Where can I find a reference for Pro DAML IDs?

ArcGIS Pro DAML ID Reference is a wiki page listing all the DAML values for controls and conditions.

Additionally, you can access these DAML IDs within Visual Studio in your add-in project by using the Pro Generate DAML Ids utility.

Are there samples for the SDK?

Yes. The samples are found in the https://github.com/esri/arcgis-pro-sdk-community-samples repo.

Where can I find the samples for a previous release of the SDK?

The samples per release can be accessed here: https://github.com/Esri/arcgis-pro-sdk-community-samples/releases

Where can I find the wiki documentation for a previous release of the SDK?

Older versions of the ArcGIS Pro SDK documentation is available from version 1.4 onward. When you clone the https://github.com/Esri/arcgis-pro-sdk/wiki repo, the master branch contains the documentation for the latest ArcGIS Pro SDK. In addition to the master branch, the older versions of the documentation can be obtained by switching to the v1.4.0.xxxx, v2.0.0.xxxx, v2.1.0.xxxx, v3.0.0.xxxx, etc. branches.

Is it possible to run geoprocessing tools using the Pro SDK?

Yes. Consult the ProConcepts Geoprocessing document.

Is there a central location where I can distribute and sell my add-ins?

Yes, the ArcGIS Marketplace provides this capability to registered Marketplace providers.

Installation

How do I install ArcGIS Pro SDK for .NET?

The Pro SDK templates and utilities are available as Visual Studio extensions (VSIX files) and can be installed from inside Visual Studio. You do not need administrative access or elevated user permissions to install the SDK. Refer to the ProGuide Installation and Upgrade for detailed instructions.

How do I upgrade to the latest version of the Pro SDK?

Please consult the ProGuide Installation and Upgrade document's upgrade section.

How do I revert back to an older version of ArcGIS Pro SDK?

Previous releases of ArcGIS Pro SDK for .NET are archived here: https://github.com/Esri/arcgis-pro-sdk/releases

Why do I get the message "Error: This extension is not installable on any currently installed products" when I attempt to install an older version of the Pro SDK?

The problem is caused by an incompatibility in the VSIXManifest file for the ArcGIS Pro SDK templates and utilities. Please consult Technical Support article 26554 for more information and how to resolve this issue.

Why do I get a message "This extension is already installed to all applicable products" when I double-click the proapp-sdk-templates.vsix?

It is likely that you have already installed ArcGIS Pro x.x SDK (Final). Verify that the ArcGIS Pro SDK for .NET templates and utilities are installed in Visual Studio. You should see an ArcGIS folder within the set of New Project templates for Visual C# and Visual Basic. Alternatively, you can select Manage Extensions from the Extensions menu in Visual Studio to check if ArcGIS Pro x.x SDK is already installed.

Why can't I see the ArcGIS Pro SDK templates in Visual Studio

As of ArcGIS Pro 3.0, ArcGIS Pro SDK requires .NET 6 (6.0.5) or higher. In the New Project dialog in Visual Studio, check the version of .NET listed in the combo box. The version needs to be .NET 6 (6.0.5) or higher.

Refer to the the topic ArcGIS Pro SDK Templates not found in Visual Studio for more information.

How can I distribute ArcGIS Pro SDK for .NET using a private gallery within an intranet?

Refer to this topic in the wiki: Distribute ArcGIS Pro SDK for .NET using a private gallery

Availability

What versions of Visual Studio are supported?

The ArcGIS Pro SDK for .NET is certified on Visual Studio 2022. Please refer to the Requirements section for details.

What is the minimum target .NET?

Microsoft .NET Runtime 6.0.5 or better. Download .NET 6.0

What version of C# is supported?

This depends more on what version of Visual Studio you are using and its update level. As of the time of this writing (October 2023), the latest version of C# using .NET 6 (6.0.5), available with Visual Studio 2022, is version 11.0.

Diagnosing Issues

Why do I get this compiler error while building an ArcGIS Pro Managed Configuration project?

"Error CS0103 The name 'InitializeComponent' does not exist in the current context."

This can happen if Visual Studio is not including the relevant .xaml, .xaml.cs, and .cs files in the compilation process. Check the .csproj or .vbproj for the following <None Include=....> entries (see below) and delete them. The procedure is as follows:

  • In Visual Studio solution explorer, right click the project node of your Managed Configuration project. Select "Edit Project File".

  • Look for any "ItemGroup" element that contains any of the Managed Configuration class files and/or user controls as "<None Include=...>" entries. Highlight these entries and delete them. The snippet below shows an example of entries that should be deleted:

      <ItemGroup>
         <None Include="Properties\launchSettings.json" />
         <None Include="Module1.cs" />
         <None Include="ConfigurationManager1.cs" />
         <None Include="UI\SplashScreen.xaml" />     
         <None Include="UI\OnMouseClick.cs" />
         <None Include="UI\SplashScreen.xaml.cs" />     
         <None Include="UI\AboutPage.xaml" />     
         <None Include="UI\AboutPage.xaml.cs" />   
         <None Include="UI\StartPage.xaml" />   
         <None Include="UI\StartPage.xaml.cs" />    
         <None Include="UI\StartPageViewModel.cs" />
      </ItemGroup>
  • Save the Project file.

  • Compile the Managed Configuration project and confirm that there are no errors.

Why does my add-in throw a ArcGIS.Core.CalledOnWrongThreadException exception?

Refer to the ProGuide: Diagnosing ArcGIS Pro Add-ins for more information on this.

Why does ArcGIS Pro not load my add-in?

Check your desktopVersion attribute in the Config.daml. Make sure your add-in desktopVersion is compatible with the version of Pro you are trying to run it on. Refer to ProConcepts Advanced Topics, add-in versioning for information on add-in versioning. Refer to the ProGuide: Diagnosing ArcGIS Pro Add-ins for other issues.

Why do I get this compiler warning when I build my add-in?

"<AddInAssembly.dll> was not found. The value of the defaultAssembly attribute in the config.daml should match the name of the of the assembly for the add-in project."

Refer to the ProGuide: Diagnosing ArcGIS Pro Add-ins for more information.

Why does my add-in's button disappear when I click on it?

Typically this means that the class your button references in its className attribute in the config.daml could either not be found or could not be loaded. Refer to the ProGuide: Diagnosing ArcGIS Pro Add-ins for more information on this.

How do I fix my broken references in my ArcGIS Pro add-in solution?

ArcGIS Pro assemblies are not stored in a GAC. They are referenced via file paths in the add-in's .csproj or .vbproj file. This means that if you share ArcGIS Pro add-ins as Visual Studio projects, your assembly reference paths stored in your .csproj or .vbproj may be different than your colleagues'. For example, some users may install ArcGIS Pro to their C: drive while others install to their D: drive.

To fix the broken ArcGIS Pro references in an add-in, use the Fix ArcGIS Pro Reference utility included in the proapp-sdk-utilities.vsix. The steps below explain how to use the tool.

  1. Install the ArcGIS Pro SDK Utilities VSIX package (proapp-sdk-utilities.vsix).
  2. Open the add-in project that has broken references.
  3. Right-click the add-in project in the Visual Studio Solution Explorer and click Pro Fix References.
  4. Click Yes on the dialog box that asks you to proceed. Your broken references will now be fixed.

I changed the namespace in my ArcGIS Pro add-in project. Now ArcGIS Pro crashes when I attempt to load the add-in.

The Config.daml file also has references to the namespace used in the ArcGIS Pro add-in solution. It is not sufficient to only change the namespace in your class files. The Config.daml file namespace references also need to be changed, even though there will be no compilation errors if they are different.

Why is there a warning about keytips in Visual Studio when an ArcGIS Pro add is compiled?

When you create an add-in using ArcGIS Pro SDK for .NET, you will see a "The required attribute 'keytip' is missing." warning in Visual Studio. Keytips are a component of 508 compilance.

missing-keytip-issue.png

The templates cannot pick a unique keytip for you. If you want to provide a keytip select a letter combination that is unique for any given tab.

Why do I get the message "ArcGIS Pro 3.x SDK for .NET cannot be installed over ArcGIS Pro 3.x.xxxx" in Visual Studio when I attempt to create a new ArcGIS Pro add-in?

Each version of the ArcGIS Pro SDK .NET requires that you have installed the corresponding ArcGIS Pro application or newer. If you are seeing this error then you have installed the latest ArcGIS Pro 3.x SDK for .NET but have not upgraded to the corresponding minimum version of ArcGIS Pro. So when you attempt to create an ArcGIS Pro add-in in Visual Studio, the missing dependency on ArcGIS Pro 3.x is detected and this message is seen.

Note: If you have the "Automatically update extensions" option turned on in Visual Studio your installation of ArcGIS Pro SDK for .NET will be automatically upgraded by Visual Studio. Therefore you may have inadvertently upgraded your Pro SDK version which is now out-of-sync with the installed version of ArcGIS Pro. For this reason we recommend turning this feature off.

auto-update.png

In Visual Studio enable/disable auto-updates per extension in Tools -> Extensions and Update or at a global level through Tools -> Options.

Why is the CopyLocal behavior of my add-in broken?

When compiling your addins you may notice that the CopyLocal behavior of the addin (or Configuration or Plugin) is broken. Even though Pro assemblies (or any assembly) have the CopyLocal=No attribute set in the property UI, the assembly is still copied local (and added to the addin archive). To fix this issue, it is recommended that you upgrade your Visual Studio 2022 to 17.2 or better. After upgrading your Visual Studio 2022, “clean” the addin project and ensure that the “obj” folder, within the project, is deleted. Check all Pro assembly reference properties in the .csproj or .vbproj and ensure that CopyLocal is set to No. Rebuild the project.

Migrating to 3.0

Note: ArcGIS Pro 3.0 was a breaking change release.

After migrating my addins from 2.x to 3.2, my addins will not load in ArcGIS Pro 3.2. Why?

If you are using the ArcGIS Pro Migration tool, to migrate a 2.x addin to 3.2, the dekstopVersion attribute in your config.daml may be being set incorrectly. At 3.2, the migration tool may be writing the build number into the dekstopVersion attribute twice. For example, in the snippet below notice that the build number in the desktopVersion attribute has been duplicated - 3.2.0.49743.49743 whereas it should be 3.2.0.49743:

<AddInInfo id="{xxxx-xxx}" version="1.0" desktopVersion="3.2.0.49743.49743"

To fix this issue, simply remove the duplicate value of the build number in the desktopVersion attribute and re-build your addin. ArcGIS Pro 3.2 will now load your add-in. The snippet below shows the correct format for the desktopVersion attribute (the duplicate build number has been removed):

<AddInInfo id="{xxxx-xxx}" version="1.0" desktopVersion="3.2.0.49743"

This issue only occurs with the migration tool at 3.2. This issue has not been observed at 3.0 or 3.1.

Why did my 2.x add-ins and configurations stop working at ArcGIS Pro 3.0?

ArcGIS Pro 3.0 was a breaking change release. To get your add-ins and configurations working again at 3.0 or later you must follow the steps outlined in the ProConcepts 3.0 Migration-Guide.

You can check if your add-in is out of date by going running Pro and checking the add-in manager. Incompatible add-ins that have not been migrated will be shown as disabled.

addin-did-not-load.png

Why do I get a warning message saying my 2.x add-ins and configurations wouldn't register

ArcGIS Pro 3.0 was a breaking change release. As it was a breaking change release, the major version number of Pro was changed from "2.x" to "3.x". Add-ins and configurations are only forwards compatible across minor versions, they are not forwards compatible across major versions. Consult ProConcepts Advanced Topics Add-in Versioning for a description of the add-in versioning scheme. To register your 2.x add-ins and configurations at 3.x you must migrate them to 3.x first. The migration steps are outlined in the ProConcepts 3.0 Migration-Guide.

IncompatibleAddin.png

Are there breaking changes in the Pro API at 3.0?

Yes. The ArcGIS Pro 3.0 API changed or deleted types and members previously available at 2.x. Please consult the ProConcepts 3.0 Migration-Guide and What's New for Developers at 3.0 section in the API Reference for the breaking changes.

Will my 2.x add-ins and configurations work with ArcGIS Pro 3.0?

No. ArcGIS Pro 3.0 was a breaking change release. You must migrate your 2.x add-ins and configurations to 3.x. They will not load in Pro 3.x. Please consult the ProConcepts 3.0 Migration-Guide for more details.

How do I migrate my 2.x add-in and configuration code?

A detailed procedure is provided in the ProConcepts 3.0 Migration-Guide.

Why do I get compiler errors when I compile my 2.x add-in or configuration with Pro 3.x?

ArcGIS Pro 3.0 was a breaking change release. Some of its types and members were changed and deprecated types and members were deleted. You will need to fix any compiler errors in your code. Please consult the ProConcepts 3.0 Migration-Guide for more details.

Because ArcGIS Pro strong names its .NET assemblies do I need to strong name my add-in or configuration?

No. A weak-named assembly can reference other weak-named or strong named assemblies.

Do I need to change my Pro assembly references in my Visual Studio project?

Yes. We recommend you run the Pro Migrate Project utility that is provided with the Pro SDK at v3.0. However, you can change the assembly references by hand too if that is your preference.

I recompiled my add-in and it still doesn't load. Why?

Please check that you changed the desktopVersion attribute of the AddinInfo xml element in your config.daml. The desktopVersion must be changed to "3.0". Consult ProConcepts 3.0 Migration-Guide for more details.

Are my Custom Application and Project Settings saved when I migrate my add-in from Pro 2.x to 3.x?

Yes. Consult ProConcepts 3.0 Migration-Guide, Additional Migration Notes for more details

Can add-ins use different versions of external assemblies with the same name?

Generally, yes, as long as the different versions of the assemblies you reference can be resolved by the .NET (this assumes the referenced assemblies are strong named).

Diagnosing Issues in ArcGIS Pro 2.8 and 2.9

Why do I get this compiler warning about mismatched processor architecture when I build my existing add-ins with ArcGIS Pro 2.8 or ArcGIS Pro 2.9?

"There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "ArcGIS.Desktop.XXX", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project."

Refer to the ArcGIS Pro SDK Release notes section and the following KB https://support.esri.com/en/Technical-Article/000025544 for more information.

When opening a user control .xaml using the Visual Studio Designer, why do I get the error "Could not load file or assembly 'ArcGIS.Desktop.Framework"?

  • At ArcGIS Pro 2.8 and ArcGIS Pro 2.9, when recompiling add-ins made with previous versions, it is recommended that you change the Platform Target in Visual Studio from "Any CPU" to "x64". Starting at ArcGIS Pro 2.8, a number of the ArcGIS Pro extensions are now being built x64 to accommodate the latest CEF upgrade. This means that if you continue to compile previous add-ins with "Any CPU" you will receive compilation warnings similar to:

    "There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "ArcGIS.Desktop.XXX", "AMD64". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project."

    warnings-platform.png

    These warnings can be ignored but we recommend changing your Platform Target in your add-ins and configurations to remove them. Note: this is not an issue for new Add-ins made with the ArcGIS Pro SDK for version 2.8 or higher. Starting at version 2.8, the default Platform Target for add-ins has been changed to “x64”. This is also documented in the following KB: https://support.esri.com/en/Technical-Article/000025544.

    Refer to the links below on how to change the build configuration to use x64 platform.

  • Also starting at 2.8, when opening a user control .xaml using the Visual Studio Designer, it can result in the error "Could not load file or assembly 'ArcGIS.Desktop.Framework". The XAML Designer that currently ships with Visual Studio 2017 and 2019 is not capable of loading x64 assemblies. Therefore, starting at 2.8, if a user control references other controls residing in ArcGIS Pro x64-built assemblies, such as "ArcGIS.Desktop.Framework" in this particular case, the Designer can trigger these assembly loading errors. These errors, if they do occur, have no effect on compiling, debugging, and running ArcGIS Pro extensions and can be ignored. Note: simply closing the Designer tab or switching to the XAML view will clear them. XAMLDesignerIssue
    This is also documented in the following KB: https://support.esri.com/en/Technical-Article/000025543.
    Note: The following entry on the Microsoft ‘Developer Community’ support website describes this Visual Studio limitation: XAML Designer does not display x64 User Controls from external projects - Visual Studio Feedback.

Refer to the following KB https://support.esri.com/en/Technical-Article/000025543 for more information.

Why does a Build-All operation in my Visual Studio solution skip some projects?

At release 2.8 and 2.9, if you add a Module Add-in project to a Visual Studio solution that already contains a Plug-in Datasource project, or a solution created before release 2.8, a 'build all' action on the solution can skip some projects during the build or rebuild process. To fix this issue, open the solution's 'Configuration Manager' dialog and check the build check box(es) for all projects in the solution.

Migration from 10x

Is the ArcGIS Pro SDK for .NET a replacement for ArcObjects?

No. There will continue to be an ArcObjects SDK for customizing and extending ArcMap, ArcCatalog, and ArcScene. The Pro SDK is only for the the ArcGIS Pro application.

Is the ArcGIS Pro SDK for .NET a replacement for ArcGIS Engine?

No. The ArcGIS Engine Developer Kit is available as part of the Desktop .NET SDK through the 10.8.x releases (it is not available at 10.9)

Does my Arcobjects code work in ArcGIS Pro?

No. ArcObjects code must be rewritten using the Pro SDK to take advantage of the new classes and features in Pro.

Are custom geoprocessing functions supported in ArcGIS Pro?

No. You must use Python or ModelBuilder.

Are geodatabase class extensions (class and workspace) supported in Pro?

No. ArcGIS Pro provides attribute rules for editing and data integrity workflows.

Are plug-in data sources supported in Pro?

Yes. They are available since version 2.3. ProConcepts Plugin Datasources

Are Custom Layers supported?

No.

Are custom ArcObjects raster functions supported in Pro?

No. The pattern in Pro is to use python to develop your custom functions. Refer to Python Raster Function.

Developing with ArcGIS Pro

    Migration


Framework

    Add-ins

    Configurations

    Customization

    Styling


Arcade


Content


CoreHost


DataReviewer


Editing


Geodatabase

    3D Analyst Data

    Plugin Datasources

    Topology

    Object Model Diagram


Geometry

    Relational Operations


Geoprocessing


Knowledge Graph


Layouts

    Reports


Map Authoring

    3D Analyst

    CIM

    Graphics

    Scene

    Stream

    Voxel


Map Exploration

    Map Tools


Networks

    Network Diagrams


Parcel Fabric


Raster


Sharing


Tasks


Workflow Manager Classic


Workflow Manager


Reference

Clone this wiki locally