Dynamics 365 Business Central: target levels in extensions development demystifyed

When you develop an extension with Visual Studio Code and the AL language,  in the app.json file you can specify the target level of your extension. The available options are as follows:


Here (in order of visibility):

  • Personalization: it’s the lowest current level, only allows for inclusion of UI objects like Profiles/PageCustomizations.
  • Extension: it’s the default level when you create an extension for Dynamics 365 Business Central. This is used for an extension that targets the online world (only FunctionVisibility = External, no DotNet variables, no Files Management but use Stream instead).
  • Solution: Unused at the moment, this could be used in the future to encompass the capabilities of ‘Embed’ apps. Actually it does nothing but unfortunately it compiles without errors 🙂
  • Internal: This is the highest level and it targets the on-premise world (maximum visibility, full DotNet support, File Management, access to all Virtual Tables like Files etc.).

Also for the on-premise world, I recommend not to use Solution as target level for your .app project. It compiles but you can have errors when deploying the extension.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.