Runtime Deployment

Windows App SDK apps must account for the Windows App Runtime. The rule is simple: packaged Store apps get the smooth path, unpackaged or external-location apps must be explicit.

Runtime Package Concepts

PackageRole
FrameworkCore Windows App SDK framework package used by apps
MainRuntime components and deployment support
SingletonSingle-instance package used by some features
DDLMDynamic Dependency Lifetime Manager, keeps runtime packages alive while in use

Framework-Dependent Apps

Framework-dependent apps use runtime packages installed on the target machine.

Packaged apps declare dependencies and can use deployment APIs where needed. External-location and unpackaged apps must install the runtime packages and initialize access before using Windows App SDK APIs.

Bootstrapper

Unpackaged and external-location apps use the Bootstrapper API at startup:

HRESULT hr = MddBootstrapInitialize(
    WINDOWSAPPSDK_RELEASE_MAJORMINOR,
    WINDOWSAPPSDK_RELEASE_VERSION_TAG_W,
    WINDOWSAPPSDK_RUNTIME_VERSION_UINT64);

Call bootstrap initialization before any other Windows App SDK API.

Self-Contained Apps

Self-contained Windows App SDK apps copy framework contents into the app output:

<PropertyGroup>
  <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
</PropertyGroup>

For .NET apps, this is separate from .NET self-contained publishing. Some Windows App SDK features still depend on additional packages or OS services.

Runtime Installer

External-location or unpackaged framework-dependent apps can use the runtime installer:

WindowsAppRuntimeInstall.exe --quiet

Verify architecture-specific runtime packages and prerequisites on a clean target machine before claiming deployment readiness.

Gotcha: Build output on the dev machine does not prove runtime deployment on a user’s machine. Test on a machine that does not already have your development runtime setup.