Payload files
Payload files are files stored in and delivered by the package. This includes your code, assets, and data, such as executables, DLLs, images, configuration files, and resources. For example:
- MyApp.exe
- MyLibrary.dll
- Assets\Logo.png
- Config\defaults.json
- Resources.pri
Content files
The term content is sometimes used in MSIX-related APIs and documentation, but it does not provide as clean a classification as payload and footprint. For example, the Packaging API associates a content type with payload files. To avoid ambiguity, we’ll use payload file when referring to files stored in the package.
Footprint files
Footprint files are package metadata and infrastructure files used to describe, validate, or otherwise support the package and its payload.
Not just terminology: The Packaging API distinguishes between the two concepts directly: IAppxPackageWriter::AddPayloadFile() adds payload files, while IAppxPackageWriter::Close() writes the package’s footprint files. The API also prevents reserved footprint filenames such as AppxManifest.xml, AppxBlockMap.xml, and AppxSignature.p7x from being added as payload files.
APPX_FOOTPRINT_FILE_TYPE
The APPX_FOOTPRINT_FILE_TYPE enumeration identifies the package’s footprint file types:
| Constant | Filename |
|---|---|
APPX_FOOTPRINT_FILE_TYPE_MANIFEST |
AppxManifest.xml |
APPX_FOOTPRINT_FILE_TYPE_BLOCKMAP |
AppxBlockMap.xml |
APPX_FOOTPRINT_FILE_TYPE_SIGNATURE |
AppxSignature.p7x |
APPX_FOOTPRINT_FILE_TYPE_CODEINTEGRITY |
AppxMetadata\CodeIntegrity.cat |
APPX_FOOTPRINT_FILE_TYPE_CONTENTGROUPMAP |
AppxContentGroupMap.xml |
A package contains core footprint files such as AppxManifest.xml and AppxBlockMap.xml. Other footprint files are conditional. For example, AppxContentGroupMap.xml is only present in packages that define content groups.
APPX_BUNDLE_FOOTPRINT_FILE_TYPE
Bundles have a different set of footprint files. The APPX_BUNDLE_FOOTPRINT_FILE_TYPE enumeration identifies the bundle’s footprint file types:
| Constant | Filename |
|---|---|
APPX_BUNDLE_FOOTPRINT_FILE_TYPE_MANIFEST |
AppxBundleManifest.xml |
APPX_BUNDLE_FOOTPRINT_FILE_TYPE_BLOCKMAP |
AppxBlockMap.xml |
APPX_BUNDLE_FOOTPRINT_FILE_TYPE_SIGNATURE |
AppxSignature.p7x |
Practical terminology
Here’s a little cheat sheet summarizing the terms:
| Term | Meaning | Example |
|---|---|---|
| Package file | A file represented in the package | Any file in the package |
| Payload file | A file stored in and delivered by the package |
.exe, .dll, .png, .json, .pri
|
| Footprint file | Package metadata or infrastructure |
AppxManifest.xml, AppxBlockMap.xml, AppxSignature.p7x
|
| Content file | An ambiguous term; prefer “payload file” when that is what you mean |
0 comments
Be the first to start the discussion.