Deploying a Tenant Customization

When you have finished developing and testing your tenant customization, you must deploy the extension (.app file) containing the customization to your customer’s production tenant. You must be able to log into the customer’s tenant as a user with permissions to the Extension Management page to complete the deployment.

Use the Upload Extension action to deploy the extension. The extension can be deployed for the current version or for the next version of the service. In most cases it is sufficient to select the current version, unless you have developed the extension specifically for the next version.


When you deploy an .app file for the next version, the extension will be queued up to be deployed as part of the customer’s tenant being upgraded to the next version. You can typically use this in a situation where you have built an upgrade of the extension to work with the next version.

The extension you are deploying could be the initial release of the customization or an upgrade to a previous version. You must use the same steps for uploading a new extension or an extension upgrade. The service will determine if the extension needs to be upgraded based on the extension’s app ID and version.


If you are developing and deploying an extension as an update to a previously deployed extension, you must keep the app ID the same and increase the version to successfully upgrade the extension to the new version.

The platform metadata requires that extensions be unique across all tenants, based on the package ID, app ID, name, publisher, and version. For example, you successfully deployed an extension on a tenant. You then recompiled the extension’s source code so that a new extension package file was created with a different package ID than the original. If you try to upload this extension on a different tenant, you will get the error An extension with same App ID and version has already been uploaded. Resolve and deploy again.. When developing a per-tenant extension from the same source code as an extension that is already deployed on a tenant, we recommend that you adjust the App ID, Name, Publisher, and Version of the extension to maintain uniqueness.

These parameters are defined in the app.json file of the extension. For more information, see JSON files.

Steps for deploying your .app file

  1. Log into your customer’s Dynamics 365 Business Central tenant.
  2. Open the Extension Management page.
  3. Choose the Upload Extension action.
  4. Select the browse button to select the .app file to upload. Browse to and select the extension’s .app file.
  5. Select if you want to deploy for the current version (most common) or next version. Select the language for the deployment.
  6. Choose the Deploy button.
  7. The extension will be deployed in the background.
    To check the status of the deployment, choose Deployment Status and then view the status of the extension deployment. Select the row to see additional details.
    In the deployment status details there is a Refresh button in the actions you must press to retrieve the most recent status and details.
  8. When the extension has been successfully deployed, choose the Refresh button to see the new extension in the list of installed extensions.

See Also

Getting Started with AL
AL Development Environment
FAQ for Developing in AL
Using Designer