Application modernisation

Manifest

Application manifest

An application manifest is the structured descriptor file inside a package that declares what the application is, what it needs, and what it is allowed to do.

Why Manifest matters in a Microsoft estate

Manifest matters during Windows 11, Intune, Azure Virtual Desktop, and Cloud PC programmes because application blockers can delay the whole rollout. The practical question is whether the term helps capture, package, sign, deploy, or troubleshoot an app with less rework.

How Manifest shows up in practice

For an MSIX package this is the AppxManifest.xml file that Windows reads before, during, and after installation to understand the package it is handling. The manifest carries the package's identity, name, publisher, version, and processor architecture. That identity, combined with the publisher name embedded in the signing certificate, is what Windows uses to determine whether a newly installed package is a fresh application or an update to one already present. This is why identity fields in the manifest have to stay consistent across an application's release history rather than being treated as free-form metadata. Beyond identity, the manifest declares the package's dependencies on shared framework packages and their required version ranges. It also declares the capabilities it needs, ranging from ordinary capabilities like internet access to restricted capabilities such as running processes outside the package's sandbox.

Restricted capabilities require additional justification and, for Store-distributed applications, Microsoft review before they will be granted. The manifest also declares its extension points, file type associations, protocol handlers, startup tasks, context menu entries, and similar integrations with the rest of Windows that a traditional installer would have configured through registry writes scattered across the system. Because the manifest is declarative rather than the sequence of imperative install actions a traditional installer script represents, it is also what makes an MSIX package's behaviour predictable and inspectable before installation. Reviewing a manifest tells a packager or a security team exactly what an application will be able to do and touch on a device, without having to trace through and reverse-engineer an installer's actual runtime behaviour.

The manifest schema itself has evolved across Windows releases, with newer capabilities and extension points introduced in step with new OS versions. A manifest authored against an older schema version may not be able to declare newer capabilities even where the underlying OS supports them, which is a practical reason packaging teams need to track which manifest schema version their tooling targets. Manifest authoring is also where many of the compatibility issues that surface during MSIX conversion get resolved in practice, whether that means adding a Package Support Framework fix-up reference, adjusting a capability, or correcting a file type association. This makes the manifest the file packagers return to most often once an initial conversion or capture has produced a working first draft.

Related terms

Glossary