Apps built with ArcGIS Runtime SDK for .NET require an ArcGIS Runtime deployment. The ArcGIS Runtime deployment contains the minimum set of ArcGIS Runtime components required to support the functionality in your app, from rendering beautiful maps to performing complex GIS analysis. Excluding unrequired components allows you to create focused apps with a smaller footprint, containing only the capabilities you need.
Define ArcGIS Runtime components to deploy
You can build an ArcGIS Runtime deployment directly in the Visual Studio IDE via a deployment manifest file that you add to your project and modify using the manifest designer.
Deployment steps differ for each platform in ArcGIS Runtime SDK for .NET (Windows Desktop, Windows Store, and Windows Phone). Consult the deployment information for each platform you want to deploy.
Windows Desktop projects by default use the developer installation of ArcGIS Runtime until you explicitly build a deployment for your app and include it alongside your app's executable, or you set the ArcGISRuntimeEnvironment.InstallPath property in your code. The ArcGIS Runtime deployment manifest can be used to include or exclude specific Local Server components, which gives you control over the size of your deployment by removing unnecessary components.
The following image shows the options available in the deployment manifest designer for a Windows Desktop project. The core ArcGIS Runtime component must always be included in your deployment, so that component is always checked in the designer. The Any CPU build setting means that both 32-bit and 64-bit versions of ArcGIS Runtime will be included in the output.
You will require an ArcGIS Runtime deployment for every target platform. The deployment manifest file will automatically detect the current platform target of each project in which it is included and build an ArcGIS Runtime with the appropriate architecture. This can be one or more of x86 (32 bit), x64 (64 bit), any CPU, or ARM depending on your app type.
ArcGIS Runtime deployment manifest file
The ArcGIS Runtime deployment manifest file allows you to define your ArcGIS Runtime deployment using Visual Studio. The deployment manifest file is added using the Project context menu and is edited by choosing components in the manifest designer UI.
The deployment manifest designer has a UI that allows you to do the following:
- Choose the target project from a list of projects in which the manifest is included (in the current solution).
- View the current solution configuration (debug or release and x86, x64, or ARM).
- Choose the required ArcGIS Runtime components and the Local Server components from a hierarchical tree of check boxes.
- View the total estimated deployment size as you choose components to include or exclude.
The deployment manifest file can be included in a single project such as a WPF application, or it can be included in a shared project and used by multiple dependent projects. The deployment manifest will detect if it is shared, and the manifest designer will allow you to choose the desired target project from a list of available projects within the current open solution. To choose different deployment options for each project in the solution, you should add a separate deployment manifest to each project. The deployment manifest will automatically detect the current platform target of each project in which it is included and build an ArcGIS Runtime deployment with the appropriate architecture.
The platform target is a property of your project and is modified in the Project properties designer or the Solution Configuration Manager dialog box. The deployment manifest shows you the current setting, but it does not provide a tool that allows you to change it.
Manifest file versions
The Deployment.arcgisruntimemanifest file displays the version of the most current ArcGIS Runtime SDK and the version of the SDK from which the manifest file was produced.
You can update a deployment from a previous version (a project in which the manifest file version preceeds the extension SDK version, in other words) using the existing deployment manifest file. Upon building your project, a deployment for the previous SDK version will be generated (the same version as the manifest file).
You cannot, however, update your application deployment with an older manifest file if you change the referenced ArcGIS Runtime assemblies to a newer version. To upgrade such a deployment, delete the existing deployment manifest file, update your SDK references, add a new deployment manifest, and recreate the required settings.
Create a deployment using the manifest designer
Follow these steps to create an ArcGIS Runtime deployment.
The menu item for adding an ArcGIS Runtime Deployment Manifest is not available in the Express editions of Visual Studio.
- Open the project or solution for your ArcGIS Runtime app in Visual Studio.
- Right-click the project listing in the Solution Explorer window and choose Add ArcGIS Runtime .NET Deployment Manifest. This adds a file to your project, named Deployment.arcgisruntimemanifest.
- Access the manifest editor by double-clicking the manifest file or right-clicking the manifest file and choosing Open.
- Click Yes if Visual Studio asks if you want to update and save the project.
You will then get a file modification warning as the ArcGIS Runtime deployment build extensions make changes to the project file. Click Reload.
- If the manifest is included in multiple projects, choose the target project from the list.
- Choose required ArcGIS Runtime components for capabilities you have included in the app you want to deploy.
If building an app that uses Local Server components, ensure that you also choose these.
If you do not check any capabilities, only the core ArcGIS Runtime components will be included.
- After choosing all required components, view the estimated deployment size.
- Build the project.
- When you build your project, an ArcGIS Runtime deployment will be created in the project's output location.
The following image shows some of the folders that are created. The folders ending with 32 contain 32-bit deployment files and those that end with 64 are for a 64-bit deployment. You will also find many folders (most named with a two-letter code) that contain a single file, Esri.ArcGISRuntime.resources.dll. This .dll file contains resource strings to support the use of ArcGIS Runtime in a specific languages. Each folder that contains this .dll file is named with a code that indicates the language.
You can significantly reduce the size of your app's ArcGIS Runtime deployment by removing unneeded 32- or 64-bit folders. While removing unneeded language support folders does not have a great impact on the size of your deployment, it reduces the number of folders and files it includes.
- Test by running your app from your deployment folder. You'll find instructions in the Deploy your app topic..
Runtime functionality options
The ArcGIS Runtime components available to include in your deployment are described in the following table.
Required if your application uses any local services.
Adds the ability to perform local geocoding. Requires your deployed application to be provisioned with a locator package.
Provides the ability to perform geoprocessing tasks via geoprocessing packages. For a list of supported tools, see Supported geoprocessing tools.
Spatial Analyst extension
Required for any geoprocessing packages that make use of Spatial Analyst tools.
3D Analyst extension
Required for any geoprocessing packages that make use of 3D Analyst tools.
Network Analyst extension
Required for any geoprocessing packages that make use of Network Analyst tools.
Map Server Results
Required to add geoprocessing results as map services.
Provides the ability to use Python scripts.
Python geoprocessing tools
Provides support for geoprocessing tools that use Python.
Python PDF output support
Provides support for tools that output PDF files.
Additional data formats
Provides additional vector file data format and raster file data format support.
Provides additional vector file data format support such as the ability to use shapefiles.
Provides additional raster file data format support. For a list of supported rasters, see Supported raster dataset file formats.
Provides support for raster mosaic layers.
Provides support for ECW format raster.
Adds support to allow you to connect directly to enterprise geodatabases. This option must be selected in conjunction with at least one of the following DBMSs: DB2, Informix, Oracle, PostgreSQL, or SQL Server.
Additional projection engine transformations
Adds additional projections and geotransformations. For more information on coordinate systems, see Spatial references.
Additional symbol sets required by your app.
Supports the handling and display of military messages using a MIL-STD-2525C-based symbol dictionary.
Supports the handling and display of S57 data.
Supports debugging of your deployed app.
Supports writing log messages from your running app.
Create an ArcGIS Runtime deployment without the manifest
An ArcGIS Runtime deployment can be created manually without using the ArcGIS Runtime deployment tool.
- Create a new folder to contain the deployment and provide a descriptive name.
- Copy the executable for your application and any required supporting files from your project (data, resources, and so on) to the deployment folder.
- Copy the ArcGIS Runtime for .NET assembly and the Esri.ArcGISRuntime.dll file to the deployment folder. This file is in the same location as your executable.
- Copy the entire ArcGISRuntime<version> folder from your ArcGIS Runtime SDK for .NET installation directory to your deployment directory.
- Expand the ArcGISRuntime<version> subfolder (in your deployment folder) and delete folders for platforms you do not want to deploy (if any). If you are building a deployment for 64 bit exclusively, for example, delete the Client32 subfolder. Your deployment must include at least one client folder.
- Move your app deployment to a new location and verify that it starts and works as expected.