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.
Define ArcGIS Runtime components to deploy
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.
Runtime DLLs and resources for WPF apps
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.
WPF or WinUI targeting .NET 6
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: runtimes\win-x64\native
and runtimes\win-x86\native
.
Example architecture-specific publish output (win-x86 or win-x64)
<Out
Dir >\publish\ Esri. ArcGIS Runtime.dll <Out
orDir >\publish\ Esri. ArcGIS Runtime. WP F.dll <Out
Dir >\publish\ Esri. ArcGIS Runtime. Win U I.dll <Out
Dir >\publish\runtimecore.dll <Out
Dir >\publish\runtimecore Assembly.manifest <Out
Dir >\publish\ Runtime Core Net100 _13.dll <Out
orDir >\publish\ Runtime Core Net100 _13. WP F.dll <Out
Dir >\publish\ Runtime Core Net. Win U I.dll <Out
Dir >\publish\ ArcGIS Runtime100.13 resources\shaders\*.*
resources\network
_analyst\strings.bin
Example Portable runtime identifier publish output
<Out
Dir >\publish\ Esri. ArcGIS Runtime.dll <Out
orDir >\publish\ Esri. ArcGIS Runtime. WP F.dll <Out
Dir >\publish\ Esri. ArcGIS Runtime. Win U I.dll <Out
Dir >\publish\runtimes\win-x64\native\runtimecore.dll <Out
Dir >\publish\runtimes\win-x64\native\runtimecore Assembly.manifest <Out
Dir >\publish\runtimes\win-x64\native\ Runtime Core Net100 _11.dll <Out
orDir >\publish\runtimes\win-x64\native\ Runtime Core Net100 _11. WP F.dll <Out
Dir >\publish\runtimes\win-x64\native\ Runtime Core Net. Win U I.dll <Out
Dir >\publish\runtimes\win-x86\native\runtimecore.dll <Out
Dir >\publish\runtimes\win-x86\native\runtimecore Assembly.manifest <Out
Dir >\publish\runtimes\win-x86\native\ Runtime Core Net100 _11.dll <Out
orDir >\publish\runtimes\win-x86\native\ Runtime Core Net100 _11. WP F.dll <Out
Dir >\publish\runtimes\win-x86\native\ Runtime Core Net. Win U I.dll <Out
Dir >\publish\ ArcGIS Runtime100.13\ resources\shaders\*.*
resources\network
_analyst\strings.bin
WPF targeting .NET Framework 4.x
Applications you create with WPF on the .NET Framework can be architecture-specific (x86
or x64
) or Any
, which includes both x86
and 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 Any
, the ArcGIS Runtime native components will be copied to subdirectories named client32
and client64
under the ArcGIS
directory in the project output location.
Example architecture-specific build output (x86 or x64)
<Out
Dir >\ Esri. ArcGIS Runtime.dll <Out
Dir >\ Esri. ArcGIS Runtime. WP F.dll <Out
Dir >\runtimecore.dll <Out
Dir >\runtimecore Assembly.manifest <Out
Dir >\ Runtime Core Net100 _13.dll <Out
Dir >\ Runtime Core Net100 _13. WP F.dll <Out
Dir >\ ArcGIS Runtime100.13 resources\shaders\*.*
resources\network
_analyst\strings.bin
Example AnyCPU build output
<Out
Dir >\ Esri. ArcGIS Runtime.dll <Out
Dir >\ Esri. ArcGIS Runtime. WP F.dll <Out
Dir >\ ArcGIS Runtime100.13\ client32\runtimecore.dll
client32\runtimecore
Assembly.manifest client32\
Runtime Core Net100 _13.dll client32\
Runtime Core Net100 _13. WP F.dll client64\runtimecore.dll
client64\runtimecore
Assembly.manifest client64\
Runtime Core Net100 _13.dll client64\
Runtime Core Net100 _13. WP F.dll resources\shaders\*.*
resources\network
_analyst\strings.bin
ArcGIS Runtime Local Server
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 (ArcGIS
). See the Create a Local Server deployment topic more information about deploying Local Server for your Windows desktop applications.
Deploying specialized symbols
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.
, 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.Net. Http. Http Client
// 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 itemMil2525d = await PortalItem.CreateAsync(arcGISOnline, "c78b149a1d52414682c86a5feeb13d30");
// Read the data from the items
Stream dataMil2525c = await itemMil2525c.GetDataAsync();
Stream dataMil2525d = await itemMil2525d.GetDataAsync();
// Read the data and write it to a local file ...
using (FileStream outFileStream = new FileStream(outMil2525cDataPath, FileMode.Create))
{
dataMil2525c.CopyTo(outFileStream);
outFileStream.Flush();
}
using (FileStream outFileStream = new FileStream(outMil2525dDataPath, FileMode.Create))
{
dataMil2525d.CopyTo(outFileStream);
outFileStream.Flush();
}
ArcGIS Network Analyst Resources deployment
The resources required to support ArcGIS Network Analyst capabilities such as routing and navigation are included by default in the ArcGIS
deployment directory in a subdirectory named network
, for example <Out
. If your application does not include these capabilities (functionality in the Esri.
or Esri.
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: <Deploy
.
Deploying to the Apple AppStore using MFi Accessories
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.