Application development and license initialization


Summary
The licensing and deployment models for custom applications must be considered before application development begins, alongside the functional requirements of the application, because a number of end user software and license configurations are possible.

In this topic


Licensing concepts

After you've determined the licensing options your application requires and which ones it will run against, make sure that your application correctly initializes those licenses. This section describes the license initialization process, shows how a multiple license initialization works, and provides a number of sample initialization processes.

Key concepts

A license server is defined as the machine providing the license.
Each stand-alone application developed using ArcObjects must initialize itself with a suitable ArcGIS license to ensure it runs successfully on any machine to which it is deployed. The license initialization must be performed by the application at application start time before any ArcObjects components are accessed. Failure to initialize results in application errors.
There are two types of licenses to consider when initializing an application—product licenses and if an application uses any of the ArcGIS extension features, extension licenses. Each of these types of licenses are available in the following license types: ArcGIS Engine Single Use; ArcGIS Desktop Concurrent Use; and ArcGIS Desktop Single Use.
Once an application has been initialized with a license, it cannot be reinitialized; an application is initialized with a license for the duration of its life. For example, you can't write an application that starts up with an ArcView license and later switches to ArcEditor.
When initializing an application with a license, consider the following:
Using an ArcView license with an ArcGIS Engine application gives you access to all the functionality available to a standard ArcGIS Engine license. Likewise, using an ArcEditor license with an ArcGIS Engine application that performs multiuser geodatabase editing gives you access to all the functionality available to an ArcGIS Engine license with the Geodatabase Update extension.
When an application is initialized with a particular product license, a connection is made to a license server. All subsequent calls to check extensions in and out are made to the same license server. As such, you cannot use a combination of licenses from different license servers or ArcGIS Engine Single Use.
It is possible before initialization has been performed to query the license servers (ArcGIS Desktop Concurrent or Single Use) and ArcGIS Engine Single Use to see if the licenses you require are available. If all the licenses you require are available using ArcGIS Engine Single Use, it is recommended you use it, instead of the ArcGIS Desktop Concurrent and ArcGIS Desktop Single Use licenses. This means you will not limit the ArcGIS Desktop Concurrent licenses available to any other users.

Initialization process

Perform the initialization of an application with a license in the following order:
Applications built with any of the ArcGIS Engine Controls must also adhere to this license initialization process. MapControl, PageLayoutControl, SymbologyControl, TOCControl, and ToolbarControl applications require the ArcGIS Engine Runtime, ArcView, ArcEditor, or ArcInfo product licenses. Since the GlobeControl and SceneControl extend core ArcGIS Engine functionality, they require a corresponding 3D extension license in addition to the core product license.
Step 1: Check product license availability—The product license that is chosen determines the functionality the application will access. Once the product license has been initialized, it cannot be changed for the duration of the application's life.
Step 2: Check extension license availability—If an application has been designed to use extension functionality, it can check the availability of extension licenses before the application is initialized. Checking the availability of an extension license must be done in conjunction with the product license that the application will be initialized with (not every extension license is available with every product license). If an extension required by the application for it to run successfully is not available, the application informs the user of the issue and exits the application.
Step 3: Initialize the application—Once it is established that the appropriate product and extension licenses are available, the application should be initialized with the product license. Once initialized, it is not possible to reinitialize the application.
Step 4: Check extension in and out—Extensions can be checked out when an application requires the extension functionality, and checked in once the application has finished with the functionality, or checked out directly after the application is initialized and checked back in before shutdown. The way that the extensions are checked in and out depends on the type of product license with which the application was initialized.
Step 5: Shut down the application—Before an application is shut down, the AoInitialize object used to perform license initialization must be shut down to ensure that ESRI libraries that have been used are unloaded.

Why initialization fails

If a product or extension fails to check out, the license status indicates the reason for the failure. Licenses can fail to check out for the following reasons:

License configuration

The following configures a custom application with a license:
The AoInitialize class and the IAoInitialize and ILicenseInformation interfaces it implements are designed to give support to a developer for license initialization.

Example A: Minimum license is ArcGIS Engine with 3D and Spatial extensions

In this example, the application requires at minimum an ArcGIS Engine license. If you decide an ArcGIS Engine license is not available, the application can run with an ArcView or ArcEditor license. The application also requires 3D and Spatial extension functionality for it to run successfully, so both of these extensions need to be checked out for the duration of the application.
Even though ArcInfo provides the functionality required in this example, initialization is not done with an ArcInfo license. It is unnecessary to use an ArcInfo license for this simple application.
In this case, the application attempts to initialize against the ArcGIS Engine product license. If that fails, it attempts to initialize against an ArcView license and if still unsuccessful, the application finally attempts to initialize against the ArcEditor product license. The following outlines the steps to initialize the application with a license.

Initialization with the ArcGIS Engine product license

To run successfully, the application requires at minimum an ArcGIS Engine product license and corresponding 3D and Spatial extension licenses. The application's first attempt at initialization is against this minimal level of product licensing. The application's attempts at initialization follow the process previously discussed.
  1. Check whether an ArcGIS Engine product license is available.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
  2. Determine whether a 3D extension license is available for the ArcGIS Engine product license.
    1. If yes, proceed with checks for other needed extensions.
    2. If not, discontinue this attempt and restart initialization with any secondary level of allowable product licensing
  3. Since Spatial extension functionality is also required for this application, check whether a Spatial extension license is available for the ArcGIS Engine product license.
    1. If yes, proceed with checks for any other needed extensions.
    2. If not, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
  4. In this case, no other extension licenses are needed. Proceed to the next step in the initialization process.
  5. Check out the ArcGIS Engine product license by initializing the application.
    1. If the license checks out, proceed to the next step in the initialization process.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
  6. Check out the 3D extension for the ArcGIS Engine product license.
    1. If the license checks out, proceed with checkout for any other needed extensions.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
  7. Check out the Spatial extension for the ArcGIS Engine product license.
    1. If the license checks out, proceed with checkout for other needed extensions.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
  8. In this case, no other extension licenses are needed. If the extension licenses are checked out, the application has been successfully configured with licenses.
  9. The final step in the initialization process is ensuring that the licenses are released when the application is shut down.

Initialization with the ArcView product license

In this example, a secondary level of licensing is available if the first ArcGIS Engine product level fails to initialize correctly. The application again attempts to initialize by following the defined process.
  1. Check whether an ArcView product license is available.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
  2. Determine whether a 3D Analyst extension license is available with the ArcView product license.
    1. If yes, proceed with checks for other needed extensions.
    2. If not, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
  3. Check whether an ArcGIS Spatial Analyst extension license is available with the ArcView product license.
    1. If yes, since no other extensions are needed, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
  4. Check out the ArcView product license by initializing the application.
    1. If the license checks out, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
The checkout of licenses can fail even though the availability check was successful. This is possible in cases in which ArcGIS Desktop Concurrent licenses were initially available but may have since been checked out by another application.
  1. Check out the 3D Analyst extension.
    1. If the license checks out, proceed with checkout for any other needed extensions.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
  2. Check out the ArcGIS Spatial Analyst extension.
    1. Since no other extension licenses are needed, if the licenses are checked out, the application has been successfully configured with licenses.
    2. If not, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
  3. The final step in the initialization process is ensureing that the licenses are released when the application is shut down.

Initialization with the ArcEditor product license

In this example, if both the first (ArcGIS Engine) and second (ArcView) product levels fail to initialize correctly, a third level of licensing ArcEditor is available. The application makes a final attempt to initialize by following the defined process.
  1. Check whether an ArcEditor product license is available.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this final attempt. The application cannot run successfully at this time.
  2. Determine whether a 3D Analyst extension license is available with the ArcEditor product license.
    1. If yes, proceed with checks for other needed extensions.
    2. If not, discontinue this final attempt. The application cannot run successfully at this time.
  3. Check whether an ArcGIS Spatial Analyst extension license is available with the ArcEditor product license.
    1. If yes, since no other extensions are needed, proceed to the next step in the initialization process.
    2. If not, discontinue this final attempt. The application cannot run successfully at this time.
  4. Check out the ArcEditor product license by initializing the application.
    1. If the license checks out, proceed to the next step in the initialization process.
    2. If the license fails to check out, discontinue this final attempt. The application cannot run successfully at this time.
  5. Check out the 3D Analyst extension.
    1. If the license checks out, proceed with checkout for other needed extensions.
    2. If the license fails to check out, discontinue this final attempt. The application cannot run successfully at this time.
  6. Check out the ArcGIS Spatial Analyst extension.
    1. Since no other extension licenses are needed, if the licenses are checked out, the application has been successfully configured with licenses.
    2. If not, discontinue this final attempt. The application cannot run successfully at this time.
  7. The final step in the initialization process is ensuring that the licenses are released when the application is shut down.

Example B: Minimum license is ArcGIS Engine with Geodatabase Update and Spatial extensions

In this example, the application is an enterprise geodatabase editing application and requires the minimum of an ArcGIS Engine with Geodatabase Update extension license. Additionally, this developer has decided that if an ArcGIS Engine with Geodatabase Update extension license is not available, the application could run with an ArcEditor or ArcInfo license instead. The application also requires Spatial extension functionality for it to run successfully, so the extension needs to be checked out for the duration of the application. In this case, the application will first attempt to initialize against the ArcGIS Engine with Geodatabase Update extension product license. If that fails, it will attempt to initialize against an ArcEditor license, and if still unsuccessful, the application will finally attempt to initialize against the ArcInfo product license. The following sections outline the steps taken to initialize the application with a license.

Initialization with the ArcGIS Engine with Geodatabase Update product license

To run successfully, the application requires at minimum an ArcGIS Engine with Geodatabase Update extension product license along with the corresponding Spatial extension license. The application's first attempt at initialization is against this minimal level of product licensing.
The application's attempts at initialization follow the previously discussed process.
  1. Check whether an ArcGIS Engine with Geodatabase Update extension product license is available.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
  2. Check whether a Spatial extension license is available with the ArcGIS Engine with Geodatabase Update extension product license.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
  3. Check out the ArcGIS Engine with Geodatabase Update extension product license by initializing the application.
    1. If the license checks out, proceed to the next step in the initialization process.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
  4. Check out the Spatial extension.
    1. Since no other extension licenses are needed, if the license checks out, the application has been successfully configured with licenses.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
  5. The final step in the initialization process is ensuring that the licenses are released when the application is shut down.

Initialization with the ArcEditor product license

In this example, a secondary level of licensing is available if the first ArcGIS Engine product level fails to initialize correctly. The application attempts to initialize by following the defined process.
  1. Check whether an ArcEditor product license is available.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
  2. Check whether an ArcGIS Spatial Analyst extension license is available with the ArcEditor product license.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
  3. Check out the ArcEditor product license by initializing the application.
    1. If the license checks out, proceed to the next step in the initialization process.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
The checkout of licenses can fail even though the availability check was successful. This is particularly possible in cases where ArcGIS Desktop Concurrent licenses were initially available but may have since been checked out by another application.
  1. Check out the ArcGIS Spatial Analyst extension.
    1. Since no other extension licenses are needed, if the license checks out, the application has been successfully configured with licenses.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
  2. The final step in the initialization process is ensuring that the licenses are released when the application is shut down.

Initialization with the ArcInfo product license

In this example, if both the first (ArcGIS Engine) and second (ArcEditor) product levels fail to initialize correctly, a third level of licensing is available (ArcInfo). The application makes a final attempt to initialize by following the defined process.
  1. Check whether an ArcInfo product license is available.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this final attempt. The application cannot run successfully at this time.
  2. Check whether an ArcGIS Spatial Analyst extension license is available with the ArcInfo product license.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this final attempt. The application cannot run successfully at this time.
  3. Check out the ArcInfo product license by initializing the application. If the license failed to check out, discontinue this final attempt. The application cannot run successfully at this time.
  4. Check out the ArcGIS Spatial Analyst extension.
    1. Since no other extension licenses are needed, if the licenses are checked out, the application has been successfully configured with licenses.
    2. If the license fails to check out, discontinue this final attempt. The application cannot run successfully at this time.
  5. The final step in the initialization process is ensuring that the licenses are released when the application is shut down.

Example C: Minimum license is ArcGIS Engine with optional network functionality available

The example application requires a minimum of an ArcGIS Engine license. If an ArcGIS Engine license is not available, the application can run with an ArcView, ArcEditor, or ArcInfo license instead. Similar to the previous examples, this application also includes Network extension functionality, but in this case, the extension is not required to run the application; instead, it enables additional functionality. As such, the Network extension will be checked out dynamically during the use of the application rather than at application start up.
Once again the application attempts to initialize against the ArcGIS Engine product license. If that fails, it makes additional attempts to initialize against an ArcView and ArcEditor license and if still unsuccessful, the application finally attempts to initialize against the ArcInfo product license. This section outlines the steps taken to initialize the application with a license.

Initialization with the ArcGIS Engine product license

As previously indicated, to successfully run, the application requires at minimum an ArcGIS Engine product license. While network functionality is available in the application, its extension license can be checked out when needed rather than for the duration of the session. The application's first attempt at initialization should be against this minimal level of product licensing. The application's attempts at initialization follow the process previously discussed.
  1. Check whether an ArcGIS Engine product license is available.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
  2. Check whether a Network extension license is available with the ArcGIS Engine product license.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, proceed to the next step in the initialization process.
  3. Check out the ArcGIS Engine product license by initializing the application.
    1. If the license checks out, proceed to the next step in the initialization process.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any secondary level of allowable product licensing.
    Since this application dynamically checks out the Network extension, this step is not performed at this time. Instead, the license will be checked out during usage of network functionality. For more information on this process, see Using network functionality in this topic.

    In this example, no licenses beyond the ArcGIS Engine product license need to be checked out; if that license is checked out, the application has been successfully configured with licenses.
  4. The final step in the initialization process is ensuring that the licenses are released when the application is shut down.

Initialization with the ArcView product license

In this example, a secondary level of licensing is available if the first ArcGIS Engine product level fails to initialize correctly. The application once again attempts to initialize by following the defined process:
  1. Check whether an ArcView product license is available.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
  2. Check whether an ArcGIS Network extension license is available with the ArcView product license.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
  3. Check out the ArcView product license by initializing the application.
    1. If the license checks out, proceed to the next step in the initialization process.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any tertiary level of allowable product licensing.
    Since this application dynamically checks out the ArcGIS Network extension, this step is not performed at this time. Instead, the license will be checked out during usage of network functionality. For more information on this process, see Using network functionality in this topic.

    In this example, no licenses beyond the ArcGIS Engine product license need to be checked out, so if that license is checked out, the application has been successfully configured with licenses.
  4. The final step in the initialization process is ensuring that the licenses are released when the application is shut down.

Initialization with the ArcEditor product license

In this example, if both the first (ArcGIS Engine) and second (ArcView) product levels fail to initialize correctly, a third level of licensing is available (ArcEditor). The application makes another attempt to initialize by following the defined process.
  1. Check whether an ArcEditor product license is available.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any fourth level of allowable product licensing.
  2. Check whether an ArcGIS Network extension license is available with the ArcEditor product license.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any fourth level of allowable product licensing.
  3. Check out the ArcEditor product license by initializing the application.
    1. If the license checks out, proceed to the next step in the initialization process.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any fourth level of allowable product licensing.
    Since this application dynamically checks out the ArcGIS Network extension, this step is not performed at this time. Instead, the license will be checked out during usage of network functionality. For more information on this process, see Using network functionality in this topic.

    In this example, no licenses beyond the ArcGIS Engine product license need to be checked out; if that license checks out, the application has been successfully configured with licenses.
  4. The final step in the initialization process is ensuring that the licenses are released when the application is shut down.

Initialization with the ArcInfo product license

If the first (ArcGIS Engine), second (ArcView), and third (ArcEditor) product levels fail to initialize correctly, one final level of licensing is available (ArcInfo ).
The application makes a final attempt to initialize by following the defined process.
  1. Check whether an ArcInfo product license is available.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any fourth level of allowable product licensing.
  2. Check whether an ArcGIS Network extension license is available with the ArcInfo product license.
    1. If yes, proceed to the next step in the initialization process.
    2. If not, discontinue this attempt and restart initialization with any fourth level of allowable product licensing.
  3. Check out the ArcInfo product license by initializing the application.
    1. If the license checks out, proceed to the next step in the initialization process.
    2. If the license fails to check out, discontinue this attempt and restart initialization with any fourth level of allowable product licensing.
     
    Since this application dynamically checks out the ArcGIS Network extension, this step is not performed at this time. Instead, the license will be checked out during usage of network functionality. For more information on this process, see Using network functionality in this topic.
    In this example, no licenses beyond the ArcGIS Engine product license need to be checked out; if that license checked out, the application has been successfully configured with licenses.
  4. The final step in the initialization process is ensuring that the licenses are released when the application is shut down.

Using network functionality

During each of the initialization attempts in this example, the checkout of the Network extension did not occur during application start up. Instead, the checkout occurs dynamically when the network functions are accessed in the application. This means that the network license continues to be available to other users when not in use by this application.
As previously discussed, the extension license must be of the same product type as the base license. If the application initialized with an ArcGIS Engine product license, network functionality cannot be initialized unless an ArcGIS Engine extension license for network is available. When the application user attempts to perform any network functions, the application performs the following steps to activate the needed functions:
  1. Check whether the Network extension is already checked out.
    1. If the license is checked out, the application can use the network functionality.
    2. If the license is not checked out, check the license out.
  2. Check out the Network extension.
    1. If the license fails to check out, the application cannot use the network functionality.
    2. If the license is checked out, the application can use the network extension.
The checkout of licenses can fail even though the availability check was successful—possible in cases where ArcGIS Desktop Concurrent licenses were initially available but may have since been checked out by another application.
After developing a custom stand-alone application, test it with ArcGIS Engine Runtime before deploying it to end user machines. Supplied as part of your ESRI Developer Network (EDN) subscription or as part of your ArcGIS Engine Developer Kit is a redistributable version of the ArcGIS Engine Runtime and registration numbers for the runtime testing of custom applications.

Copy protection and software authorization for end users

The final step in developing and deploying ArcGIS Engine applications is to ensure that all user machines have the correct license configuration to support your ArcGIS Engine application. This section details the various ways end users and developers can authorize the ArcGIS Engine Runtime components on user systems.
Software authorization is the process of unlocking the underlying ArcGIS Engine Runtime software components. As a developer, you did this when you installed and set up the ArcGIS Engine software development kit (SDK) for the Java Platform. 
After you install the software, a Software Authorization Wizard appears instructing you to navigate to the .ecp authorization file that was issued when you registered the product. Only after the authorization file was read and accepted were you able to design and run applications that use ArcGIS Engine components. All deployed applications must be authorized in a similar manner, although there are a number of different ways to achieve authorization. See the following screen shot:
Every application you build and deploy must be initialized with a suitable license and license initialization must be built into your application.
The store of suitable licenses that your application initializes against are contained in the software authorization or keycode file (whichever is applicable) on the user machine or network. If your application attempts to initialize against a license that is not contained in the authorization file or if all instances of the required license have been checked out, your application will not run.
As the developer, plan how your users will acquire and access an authorization or keycode file suitable to run your application. Your users can fall into the following categories:
The following sections discuss the software authorization process for each of these three user types.

ArcGIS Desktop users

If your user is a licensed ArcGIS Desktop user, go through the following process to install and run an application you built.
  1. You review and confirm licensing requirements for your application—ArcView, ArcEditor, or ArcInfo (single use or concurrent) along with any necessary extensions.
  2. Your user confirms they have the applicable ArcGIS Desktop authorization or keycode files available to use with your application, as determined in the preceding step.
  3. If necessary, you or the user installs the custom ArcGIS Engine application with the ArcGIS Engine Runtime.
If necessary, install the ArcGIS Engine Runtime on an end user's machine that has ArcGIS Desktop installed. If the .NET Framework and Java Runtime Environment (JRE) installation was before ArcGIS Desktop, the features required by a custom ArcGIS Engine application (developed using the .NET or Java application programming interfaces [APIs]) automatically installs with the ArcGIS Desktop installation.
  1. When the application starts and initializes, an available license is checked out from the user's existing authorization or keycode file.

User acquires ArcGIS Engine Runtime directly from ESRI

The second type of end user purchases and authorizes the ArcGIS Engine Runtime software. Do the following to install and run the application you built:
  1. Review and confirm the licensing requirements of the application.
  2. Purchase ArcGIS Engine Runtime and necessary extensions (3D, Geodatabase, Spatial, Network, and so on), as previously determined.
  3. If necessary, register the ArcGIS Engine product and extensions with ESRI. For more information, see Product Registration on the ESRI Customer Service Web site.
  4. Upon receipt from ESRI, save the .ecp authorization file to your computer.
  5. The user installs the ArcGIS Engine Runtime software.
  6. Once the installation is complete, open the Software Authorization Wizard.
    • On Windows, navigate to the \ArcGIS\bin folder and run SoftwareAuthorization.exe.
    • On Solaris and Linux, navigate to the \ArcGIS folder and run the AuthorizeSoftware file.
  7. When requested by the Software Authorization Wizard, navigate to the authorization file's location.
  8. Install your custom ArcGIS Engine application.
  9. When the application starts and initializes, an available license is checked out from the user's authorization file.
The custom application is deployed to an end user machine that does not have the ArcGIS Engine Runtime installed. This is the easiest deployment method for the developer because the end user must install, register, and authorize the ArcGIS Engine Runtime software.

User has no direct involvement with ESRI

Although the redistribution of authorization files in your application is discussed in this topic, there are the following user restrictions:
The final type of end user has no direct contact with ESRI. Instead, your application calls the SoftwareAuthorization.exe file or the AoAuthorizeLicense object in your installation program or application to unlock the functionality of the ArcGIS Engine. For more information, see IAuthorizeLicense.
See the following screen shot:
 
This requires that you hard code the authorization keycode into your program. The advantage of this method is that the software authorizes silently and does not require prompting your user for any registration information. In this case, do the following to install and run an application that you built:
  1. Review and confirm licensing required by your application.
  2. Purchase the necessary redistributable ArcGIS Engine Runtime product and necessary extensions (3D, Geodatabase, Spatial, and so on), as previously determined.
  3. If necessary, register the ArcGIS Engine product and extensions with ESRI. For more information, see Product Registration on the ESRI Customer Service Web site.
  4. Upon receipt of a redistributable .ecp authorization file, add its features to the code for your application.
  5. Install your custom built ArcGIS Engine application to do the following: 
To run the SoftwareAuthorization tool from your application's installation program, use the argument in the following code example (/S triggers the tool to run silently without a user interface displaying):
[Java]
 / LIF < filename >  / S
  1. When the application starts and initializes, an available license is checked out from the user's existing authorization file.
The custom application is deployed to an end user machine. The custom setup installs and authorizes the ArcGIS Engine Runtime software so the end user has no contact with ESRI.