Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 52 additions & 1 deletion docs/cli-schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@
}
},
"manifest": {
"description": "Create and modify appxmanifest.xml files for package identity and MSIX packaging. Use 'manifest generate' to create a new manifest, or 'manifest update-assets' to regenerate app icons from a source image.",
"description": "Create and modify appxmanifest.xml files for package identity and MSIX packaging. Use 'manifest generate' to create a new manifest, 'manifest update-assets' to regenerate app icons from a source image, or 'manifest validate' to check if a manifest is valid.",
"hidden": false,
"subcommands": {
"generate": {
Expand Down Expand Up @@ -766,6 +766,57 @@
"recursive": false
}
}
},
"validate": {
"description": "Validate an AppxManifest.xml file against the schema",
"hidden": false,
"arguments": {
"manifest-path": {
"description": "Path to AppxManifest.xml or Package.appxmanifest file to validate",
"order": 0,
"hidden": false,
"valueType": "System.IO.FileInfo",
"hasDefaultValue": false,
"arity": {
"minimum": 1,
"maximum": 1
}
}
},
"options": {
"--quiet": {
"description": "Suppress progress messages",
"hidden": false,
"aliases": [
"-q"
],
"valueType": "System.Boolean",
"hasDefaultValue": true,
"defaultValue": false,
"arity": {
"minimum": 0,
"maximum": 1
},
"required": false,
"recursive": false
},
"--verbose": {
"description": "Enable verbose output",
"hidden": false,
"aliases": [
"-v"
],
"valueType": "System.Boolean",
"hasDefaultValue": true,
"defaultValue": false,
"arity": {
"minimum": 0,
"maximum": 1
},
"required": false,
"recursive": false
}
}
}
}
},
Expand Down
13 changes: 12 additions & 1 deletion docs/llm-context.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ Start here for initializing a Windows app with required setup. Sets up everythin
- `--verbose` / `-v` - Enable verbose output
### `winapp manifest`

Create and modify appxmanifest.xml files for package identity and MSIX packaging. Use 'manifest generate' to create a new manifest, or 'manifest update-assets' to regenerate app icons from a source image.
Create and modify appxmanifest.xml files for package identity and MSIX packaging. Use 'manifest generate' to create a new manifest, 'manifest update-assets' to regenerate app icons from a source image, or 'manifest validate' to check if a manifest is valid.

#### `winapp manifest generate`

Expand Down Expand Up @@ -125,6 +125,17 @@ Generate new assets for images referenced in an appxmanifest.xml from a single s
- `--manifest` - Path to AppxManifest.xml file (default: search current directory)
- `--quiet` / `-q` - Suppress progress messages
- `--verbose` / `-v` - Enable verbose output

#### `winapp manifest validate`

Validate an AppxManifest.xml file against the schema

**Arguments:**
- `<manifest-path>` *(required)* - Path to AppxManifest.xml or Package.appxmanifest file to validate

**Options:**
- `--quiet` / `-q` - Suppress progress messages
- `--verbose` / `-v` - Enable verbose output
### `winapp package`

Create MSIX installer from your built app. Run after building your app. appxmanifest.xml is required for packaging - it must be in current working directory, passed as --manifest or be in the input folder. Use --cert devcert.pfx to sign for testing. Example: winapp package ./dist --manifest appxmanifest.xml --cert ./devcert.pfx
Expand Down
33 changes: 33 additions & 0 deletions docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,39 @@ winapp manifest update-assets mylogo.png --manifest ./dist/appxmanifest.xml
winapp manifest update-assets mylogo.png --verbose
```

#### manifest validate

Validate an AppxManifest.xml file against the official Windows App SDK schemas using MakeAppx.exe.

```bash
winapp manifest validate <manifest-path>
```

**Arguments:**

- `manifest-path` - Path to AppxManifest.xml or Package.appxmanifest file to validate

**Description:**

Validates an AppxManifest.xml file to ensure it conforms to the official Microsoft MSIX schemas. The command:

- Uses MakeAppx.exe from the Windows SDK BuildTools package for complete schema validation
- Validates the XML structure, required elements, and attribute values against official schemas
- Provides detailed error messages with line numbers
- Suggests fixes for common validation errors (e.g., invalid Application Id format, Publisher format)

The command automatically downloads the required Windows SDK BuildTools package if not already installed.

**Examples:**

```bash
# Validate a manifest file
winapp manifest validate ./appxmanifest.xml

# Validate with verbose output
winapp manifest validate ./appxmanifest.xml --verbose
```

---

### cert
Expand Down
Loading