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
| Package | Role |
|---|---|
| Framework | Core Windows App SDK framework package used by apps |
| Main | Runtime components and deployment support |
| Singleton | Single-instance package used by some features |
| DDLM | Dynamic 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.