Deployment overview (ArcObjects .NET 10.6 SDK)
ArcObjects Help for .NET developers > Developing with ArcGIS > Building stand-alone applications > Deploying stand-alone applications > Deployment overview (ArcObjects .NET 10.6 SDK)

Deployment overview


In this topic


Deploying ArcGIS Engine for Windows

ArcGIS Engine for Windows must be installed on every end-user machine in which a custom ArcGIS Engine application is deployed. As a purchaser of the ArcGIS Engine Developer Kit, you can freely distribute ArcGIS Engine for Windows on a compact disc (CD) or in your custom application's installation program. 
It is not required to install ArcGIS Engine for Windows on an end-user machine that has ArcGIS Desktop installed as an Engine application can run with either a Desktop or Engine binaries.  Keep in mind when writing your licensing checking code that a Desktop machine will probably not have access to Engine licenses.  If the .NET Framework and Java Runtime Environment (JRE) is installed on the machine before ArcGIS Desktop is installed, the .NET and Java features required by a custom ArcGIS Engine application developed using the .NET or Java application programming interfaces (APIs) will be installed automatically with ArcGIS Desktop.

Deploying custom applications

The method used to create a setup for the custom application is determined at the beginning of the development project and depends on your organization, end-user requirements, and any previous experience you have creating setups. For example, the custom setup can use Microsoft Windows Installer (MSI) technology, can be a scripted setup, or can be a batch file that is distributed on a CD to the end user.
The following screen shot shows an example of a batch file that installs ArcGIS Engine and a custom application from setups on a CD, then starts the Software Authorization Wizard for the end user:

Software authorization for end users

The final step in developing and deploying ArcGIS Engine applications is ensuring that all client machines have the correct license configuration to support your ArcGIS Engine application. This section details the various ways end users and developers can authorize ArcGIS Engine for Windows components on client systems.
Software authorization is the process of unlocking the underlying ArcGIS Engine for Windows software components. As a developer, you did this when you installed and set up the ArcObjects .NET Developer Kit. When you installed the software, the Software Authorization Wizard appeared and directed you to select a product, then authorize it. Only after the software was successfully authorized, were you able to design applications that use ArcGIS Engine components. All deployed applications must be authorized in a similar manner. There are a number of different ways to complete the authorization. Every application you build and deploy must initialize itself with a suitable license.
License initialization and runtime binding must be built into your application. For more information, see Application development and license initialization.
The store of suitable licenses that your application initializes against is managed by the software authorization application on the client machine or network. Your application will not run if it attempts to initialize against a license that is not available, or if all instances of the required license have been checked out.
As the developer, you need to plan how your clients authorize your software. Software authorization is typically carried out in one of the following ways:

ArcGIS Desktop user

If your client is a licensed ArcGIS Desktop user, you and your client will go through the following process to install and run an application that you built:
  1. You review and confirm licensing requirements for your application, that is, ArcGIS Desktop Basic, Standard, or Advanced—Single Use or Concurrent Use—along with any necessary extensions.
  2. Your client confirms that they have the applicable ArcGIS Desktop authorization files available for use with your application, as determined in the previous step.
  3. If necessary, you or your client installs the custom ArcGIS Engine application together with ArcGIS Engine for Windows.
You may not need to install ArcGIS Engine for Windows on an end-user machine that has ArcGIS Desktop installed. If the .NET Framework and JRE were installed on the machine before ArcGIS Desktop was installed, the .NET and Java features required by a custom ArcGIS Engine application developed using the .NET or Java APIs will be installed automatically with ArcGIS Desktop.
  1. When the application starts, the application initializes and checks out an available license.

User acquires ArcGIS Engine for Windows directly from Esri

The second type of end-user purchases and authorizes the ArcGIS Engine for Windows software. You and your client will go through the following process to install and run an application that you built:
  1. You review and confirm the licensing requirements of the application.
  2. Your client purchases ArcGIS Engine for Windows and any needed extensions (for example, 3D Analyst, Geodatabase, Spatial Analyst, Network Analyst, and so on), as determined in the previous step. They will receive authorization numbers for purchased products from Esri Customer Service via e-mail. Authorization numbers will be in the form of ESUxxxxxxxxx for Single Use licenses, EFLxxxxxxxxx for Concurrent Use, and EEAxxxxxxxxx for Enterprise Single Use licenses. Enterprise Single Use licenses are Single Use licenses that need to be authorized on a license manager before they can be distributed internally. This avoids having each end-user machine authorize the software against Esri Customer Service.
  3. Your client authorizes the ArcGIS Engine product—Single Use or Concurrent Use—and extensions with Esri Customer Service. If using ArcGIS Engine for Windows Concurrent Use licenses, the licenses need to be authorized on a networked License Manager. 
  4. Your client installs the ArcGIS Engine for Windows software.
  5. Once the installation is complete, your client opens the ArcGIS Administrator Wizard and selects ArcGIS Engine for Windows Single Use or Concurrent Use. If Single Use is selected, they need to authorize the software against Esri Customer Service or against an internal license server if they have Enterprise Single Use licenses. If Concurrent Use is selected, they need to specify the license manger that was configured in Step 3.  
  6. You or your client then installs your custom ArcGIS Engine application.
  7. Upon application startup, the application initializes and checks out an available license from the client's authorization file.
The custom application is deployed to an end-user machine that does not have ArcGIS Engine for Windows installed. This is the easiest deployment method for the developer because the end user must install, register, and authorize the ArcGIS Engine for Windows software.

User has no direct involvement with Esri

Although the redistribution of authorization files in your application is documented in this topic, the following are user restrictions upon its use:
  • If your application is to be used solely within your organization, you can redistribute in this manner. However, you cannot distribute it in excess of the number of licenses you have purchased.
  • If the application is to be used or sold to a third party, use of a redistributed authorization file violates the standard Esri Master License Agreements (MLAs), and an individual contract must be negotiated. Contact the Esri Partner Network or your international distributor for information on this type of licensing.
For additional information on your right to use and deploy ArcGIS Engine applications, see the footnotes under Developer GIS in the following MLAs (please check the MLA terms and conditions periodically for updates):
  • Master License Agreement Terms and Conditions for U.S. customers
  • Master License Agreement Terms and Conditions for non-U.S. customers
See the following command line:
SoftwareAuthorization.exe /LIF <*.prvc> /S
Silent authorization requires an Internet connection.
Upon application startup, the application initializes and checks out an available license from the client's authorization file.
The custom application is deployed to an end-user machine. The custom setup installs and authorizes ArcGIS Engine for Windows, so the end user has no contact with Esri.
If the end user wants to use ArcGIS Engine Concurrent Use licenses, the license manager can be specified during the silent installation of ArcGIS Engine for Windows using the ESRI_LICENSE_HOST= parameter. See the following command line:
Msiexec /i <setup location>\setup.msi ESRI_LICENSE_HOST=<license manager name> SOFTWARE_CLASS_ENGINE=Runtime SEAT_PREFERENCE_ENGINE=Float INSTALLDIR1=D:\python /qb

Offline authorization

If the end-user's machine does not have an Internet connection, they can authorize the software via e-mail or the web site option. On the Authorization Method panel on the Software Authorization Wizard, select "Authorize at Esri's Web site or by e-mail to receive your authorization file" and follow the instructions.


See Also:

Licensing and copy protection questions and answers
Application development and license initialization