Post

Platform vs. application version in Business Central

Business Central reports two versions. What platform and application mean, how their numbers move, and how app.json and AL-Go use them.

Platform vs. application version in Business Central

🇩🇪 Deutsche Version

Help and Support → Troubleshooting shows two versions:

1
Version: DE Business Central 28.5 (Platform 28.0.54946.55473 + Application 28.5.54151.56021)

Same major, but a different minor and a different build. They describe two different parts of Business Central.

Platform and application

 PlatformApplication
Containsserver, client and services, plus the system objects they exposeMicrosoft’s apps: System Application, Base Application and the rest of the solution
Minoralways .0 within a majorthe monthly update: .0 to .5 online, up to .18 on-premises
Build (3rd number)changes over time, even within a majornever changes within a minor version
Revision (4th number)hotfixhotfix

How a hotfix changes the version:

1
2
Application  28.5.54151.54178  →  28.5.54151.56021   (only the revision changes)
Platform     28.0.54016.0      →  28.0.54946.56347   (build and revision change)
  • The version an environment is “on” is the application version. The name in the Help and Support line (“Business Central 28.5”) is the application’s, and the admin center schedules updates by its major.minor.
  • Despite its name, the System Application belongs to the application, not to the platform. It follows the application’s minor (28.5.x), the platform’s own symbol package is the app “System” (28.0.x).

How the numbers move

Platform version shipped with sandbox artifacts (w1), as of October 15, 2026.

Over time, the builds of 28.5:

ApplicationCreatedPlatform
28.5.54151.54178Sep 728.0.54016.0
28.5.54151.55284Sep 2828.0.54946.55168
28.5.54151.56376Oct 1528.0.54946.56347

The application only changes its revision, the platform changes build and revision.

On one day, the newest build of each minor on October 15:

ApplicationPlatform
28.0.46665.5637728.0.54946.56347
28.1.49838.5638428.0.54946.56347
28.2.50931.5638328.0.54946.56347
28.3.52162.5638528.0.54946.56347
28.4.53241.5638628.0.54946.56347
28.5.54151.5637628.0.54946.56347
29.0.54011.5640029.0.56351.0

All minors of a major run on the same, current platform, and a new major brings its own.

Platform and application are also hotfixed independently. The environment from the beginning runs application 28.5.54151.56021 on platform 28.0.54946.55473, while the artifact with the same application version ships platform 28.0.54946.55847.

An environment also differs from the artifact in how its apps are versioned. In the artifact for 28.5.54151.56021, all 204 apps carry revision 56021. The environment from the beginning shows the same application version, but hotfixes only update the apps they change:

App in the environmentVersion
Base Application28.5.54151.56021
System Application28.5.54151.55939
Application28.5.54151.54178
most other Microsoft apps28.5.54151.54178

The application version in Help and Support is the Base Application’s.

In app.json

1
2
3
4
{
  "platform": "1.0.0.0",
  "application": "28.0.0.0"
}
SettingMeansRaise it when
platformminimum version of the symbol package Microsoft_System_*.app (the app “System”)you use a system object or platform capability that only exists from that version on
applicationminimum version of Microsoft_Application_*.app (the app “Application”)you use objects, fields or events from the Base or System Application that are new in that version
  • Both are minimum versions. An app with application set to 28.0.0.0 is accepted on 28.0 and every later version. Set higher than the target environment, it can’t be installed there.
  • Use major.minor.0.0 for application, never a full build. An environment’s Application app can be older than the artifact you built against, as shown above: 28.5.54151.56021 would build fine but fail to install there.
  • Don’t list the Base or System Application under dependencies; application covers them.
  • Many apps leave platform at 1.0.0.0, AL-Go’s “Create a new app” template included. Which platform an app needs is mostly decided by its runtime, which is a topic of its own.

In AL-Go

  • An artifact’s version is the application version: //28.5/de/latest selects application 28.5. The platform comes with the artifact and is recorded in its manifest.json.
  • AL-Go selects artifacts by application only. Its applicationDependency is the highest application across your app.json files (at least the setting, default 18.0.0.0). * as artifact version builds on it, and the build stops if the artifact is older. All combinations: The AL-Go artifact setting cookbook.
  • platform from app.json plays no role in artifact selection.
  • By default (vsixFile), AL-Go also takes the AL compiler from the artifact. The artifact therefore decides as well which runtime the build can produce at most.

On-premises

A technical upgrade replaces the platform but keeps the existing application. Platform and application then have different majors until the application is upgraded as well.

This post is licensed under CC BY 4.0 by the author.