Application version for aliasing base application

Enabled for Public preview General availability
Admins, makers, or analysts, automatically This feature is released. Feb 1, 2020 This feature is released. Apr 1, 2020

Business value

Embed applications as well as customized on-premises applications should be able to modify the app.json file of the base application and change the identity of the application extensions. However, by doing so, solutions on top pointing to the Microsoft base identity will not resolve against the embed application or on-premises code customizations, if these are using explicit dependencies.

Therefore, to support a way for embed applications to specify that they are aliasing Microsoft's Base Application so that any extension built on top of Microsoft's Base Application can compile against their solutions, there needs to be a level of indirection through the application alias.

Feature details

Embed partners and on-premises solutions can create a parent extension named Application, versioned according to base version, and with an appropriate, unique publisher. This parent extension is mainly used as an indirection proxy, and should contain explicit dependencies to the extensions actually implementing the application. In addition, the propagateDependencies property in the app.json file should be set to true. This will expose the dependencies to any extension taking dependency on the proxy Application version.

Partners will use the Application version property in their extension's app.json file to specify the expected application version.

In Visual Studio Code, the full set of symbol packages that make up the "application" will be pulled in when specifying an Application version in the app.json file.

An explicit dependency to Microsoft's Base Application will take priority over the Application version, but is redirected to "application" if the Base Application is not present on the system.

Note

ApplicationVersion only allows resolving dependencies on compile. Whether the extension is in fact compatible with the provided alias is up to the embed extension authors to ensure and test.

See also

The Microsoft_Application.app File (docs)