Applications built with ArcGIS Runtime API for .NET require a set of ArcGIS Runtime components to be included with the application deployment to enable functionality at runtime.
The ArcGIS Runtime API for .NET NuGet package logic will automatically detect the target platform architecture(s) of your application and copy the appropriate architecture(s) of ArcGIS Runtime component to the build output location or publish location.
- WPF: When building applications with the WPF application platform, ArcGIS Runtime API for .NET supports multiple .NET runtimes: .NET Framework 4.x and .NET 6. Learn more about .NET application publishing or how to deploy a WPF application on .NET Framework in the Microsoft docs.
- WinUI: Learn more about Deployment architecture for the Windows App SDK in the Microsoft docs.
- UWP: Learn more about Packaging UWP apps in the Microsoft docs.
- Xamarin.Android: The Xamarin.Android build process assembles the required components and generates an .apk for execution on Android devices. Learn more about the Android build process in the Microsoft docs.
- Xamarin.iOS: Learn more about Xamarin iOS app distribution in the Microsoft docs.
- Xamarin.Forms: Create a deployment for all platforms supported by your Xamarin Forms app. Learn more about deploying Xamarin Forms apps Deploy and test in the Microsoft docs.
When building applications with WPF, ArcGIS Runtime API for .NET supports multiple .NET runtimes: .NET Framework 4.x and .NET 6. The required ArcGIS components will be copied to the build output or publish locations according to the target .NET runtime and platform architecture(s) of your project.
Applications you create with WPF or WinUI targeting .NET 6 can be published as profiles with architecture-specific runtime identifiers (win-x86 or win-x64) or using the Portable runtime identifier to include both win-x86 and win-x64 native libraries. If publishing with an architecture-specific runtime identifier, for example
win-x64, the required ArcGIS Runtime native components will be included at the root level of the output folder. If publishing with the
Portable runtime identifier, the ArcGIS Runtime native components will be copied to subdirectories under the
runtimes directory in the project build output location:
Example architecture-specific publish output (win-x86 or win-x64)
Example Portable runtime identifier publish output
Applications you create with WPF on the .NET Framework can be architecture-specific (
AnyCPU, which includes both
x64 native components. If targeting a single architecture, the required ArcGIS Runtime native components will be included at the root level of the output directory. If building as
AnyCPU, the ArcGIS Runtime native components will be copied to subdirectories named
client64 under the
ArcGISRuntime100.x directory in the project output location.
Example architecture-specific build output (x86 or x64)
Example AnyCPU build output
If your Windows desktop application project uses the ArcGIS Runtime Local Server component, you configure the subset of Local Server components to include with your application deployment using an XML-based deployment manifest file (
ArcGISLocalServer.AGSDeployment). See the Create a Local Server deployment topic more information about deploying Local Server for your Windows desktop applications.
You may need to deploy specialized symbols, such as military symbol dictionaries, for use with your ArcGIS Runtime app.
You have two options for including these symbols in your deployment.
- The ArcGIS for Defense group hosts the following ArcGIS Online items that contain .stylx files with military symbols. Use the support matrix to find and download the supported stylx file for your version of ArcGIS Runtime SDK. Once downloaded, you can include the files in your app deployment. Logic in your app, of course, would be required to locate and use the included files as needed.
- Add logic to your app that prepares the app for offline use by downloading the files and storing them locally. You can access these resources when your user is online either by programmatically downloading them (using
System.Net.Http.HttpClient, for example) or accessing them as portal items using the ArcGIS Runtime API, reading their contents, and storing them locally. The following example shows how to access some of the hosted military symbol items using ArcGIS Runtime code.
// Get the ArcGIS Online portal (default if no URI is provided) ArcGISPortal arcGISOnline = await ArcGISPortal.CreateAsync(); // Get the military symbol items (use their unique item IDs) PortalItem itemMil2525c = await PortalItem.CreateAsync(arcGISOnline, "ef95f95470db437f80ea764a9d05203b"); PortalItem itemMilStd2525d = await PortalItem.CreateAsync(arcGISOnline, "c78b149a1d52414682c86a5feeb13d30"); // Read the data from the items var dataMil2525c = await itemMil2525c.GetDataAsync(); var dataMilStd2525d = await itemMilStd2525d.GetDataAsync(); // ... Code here to read the data and write it to a local file ...
The resources required to support ArcGIS Network Analyst capabilities such as routing and navigation are included by default in the
ArcGISRuntime100.x\resources deployment directory in a subdirectory named
network_analyst, for example
<OutDir>\ArcGISRuntime100.13\resources\network_analyst\strings.bin. If your application does not include these capabilities (functionality in the
Esri.ArcGISRuntime.Navigation namespaces), you can reduce the size of the ArcGIS Runtime deployment by excluding the resource file. To skip deploying the resource file, add the following property to your project file:
The Apple AppStore has guidelines and restrictions for apps that communicate with MFi accessories (for example an external GPS receiver). Apps that use NMEA data need to satisfy the Apple requirements to be accepted in the store. Apps need to declare support via PPID in their submission and the MFi provider needs to list the bundle ID so Apple can cross-reference it. For more information see Apple's MFi Program site.