MSIX Bundle Support for pack command#546
Open
zateutsch wants to merge 7 commits into
Open
Conversation
…alidation, docs - H1: Thread targetArch into PrepareRuntimeForPackagingAsync so bundle slices use their detected arch instead of host arch - H2: Add manifest-referenced asset copying to PackSingleFolderToMsixAsync (external manifest assets, MRT assets, file references) - N1: Reject .msixbundle extension for --output when N=1 (single package) - M1/M2: Update ShortDescription and --output description to mention bundles - M6: Update winapp.agent.md command reference with bundle usage - M7: Regenerate winapp-commands.ts from updated cli-schema.json - M4/M5: Add dependency consistency tests (PackageDependency, TargetDeviceFamily) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds multi-folder packaging support to produce MSIX bundles, including cross-slice validation and makeappx bundling, while updating CLI/docs and small npm wrapper options.
Changes:
- Extend
winapp package/packto accept multiple input folders and generate.msixbundleoutputs. - Introduce
BundleService(makeappx bundle) andBundleValidationService(cross-slice manifest/arch consistency checks). - Update docs/schema and refine npm wrapper options (
init --search-all, simplifyui screenshotoptions).
Reviewed changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/winapp-npm/src/winapp-commands.ts | Adds init --search-all; removes uiScreenshot focus option and updates capture wording. |
| src/winapp-CLI/WinApp.Cli/Services/MsixService.cs | Injects new bundle services into MsixService. |
| src/winapp-CLI/WinApp.Cli/Services/MsixService.Runtime.cs | Adds arch override for runtime preparation (bundle slice support). |
| src/winapp-CLI/WinApp.Cli/Services/MsixService.Bundle.cs | Implements bundle creation workflow and shared pack helper. |
| src/winapp-CLI/WinApp.Cli/Services/IMsixService.cs | Exposes CreateMsixBundleAsync API. |
| src/winapp-CLI/WinApp.Cli/Services/IBundleValidationService.cs | Defines cross-slice validation contract and error model. |
| src/winapp-CLI/WinApp.Cli/Services/IBundleService.cs | Defines bundle creation contract. |
| src/winapp-CLI/WinApp.Cli/Services/BundleValidationService.cs | Implements architecture + manifest consistency validation. |
| src/winapp-CLI/WinApp.Cli/Services/BundleService.cs | Implements makeappx bundle invocation with staging dir. |
| src/winapp-CLI/WinApp.Cli/Models/CreateMsixBundleResult.cs | Adds bundle result model returned by service/CLI. |
| src/winapp-CLI/WinApp.Cli/Models/BundleSliceInfo.cs | Adds per-slice metadata model for bundle results. |
| src/winapp-CLI/WinApp.Cli/Helpers/HostBuilderExtensions.cs | Registers bundle services with DI container. |
| src/winapp-CLI/WinApp.Cli/Commands/PackageCommand.cs | Accepts multiple folders, validates inputs/output extension, routes to bundle vs package. |
| src/winapp-CLI/WinApp.Cli.Tests/MsixServiceTests.cs | Updates test helper constructors for new MsixService deps. |
| src/winapp-CLI/WinApp.Cli.Tests/FakeMsixService.cs | Adds fake implementation for CreateMsixBundleAsync. |
| src/winapp-CLI/WinApp.Cli.Tests/BundleValidationServiceTests.cs | Adds unit tests for bundle cross-slice validation. |
| docs/usage.md | Documents multi-architecture bundle usage for winapp pack. |
| docs/fragments/skills/winapp-cli/signing.md | Documents that only the bundle needs signing. |
| docs/fragments/skills/winapp-cli/package.md | Documents bundling workflow and behavior. |
| docs/cli-schema.json | Updates schema for input-folder argument to be one-or-more directories. |
| .github/plugin/skills/winapp-cli/ui-automation/SKILL.md | Changes reference to UI JSON envelope doc (currently removes link). |
| .github/plugin/skills/winapp-cli/signing/SKILL.md | Adds bundle signing guidance. |
| .github/plugin/skills/winapp-cli/package/SKILL.md | Adds bundle packaging guidance. |
| .github/plugin/agents/winapp.agent.md | Updates agent guidance for package/bundle behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
Build Metrics ReportBinary Sizes
Test Results✅ 1053 passed, 1 skipped out of 1054 tests in 433.3s (+24 tests, -24.4s vs. baseline) Test Coverage❌ 17% line coverage, 35.5% branch coverage · ✅ +0.3% vs. baseline CLI Startup Time32ms median (x64, Updated 2026-05-25 03:22:15 UTC · commit |
Copilot stopped work on behalf of
zateutsch due to an error
May 24, 2026 22:06
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Enabling creation of msixbundles via passing multiple output dirs to pack command
fixes #517
Decision tree
Examples