Remove stale Store packages during publish - #148
Merged
Conversation
Commit the bundle draft with --noCommit, then use the Store submission REST API to mark every package whose version differs from the release version as PendingDelete before committing. This removes the lingering 1.1.0.0 loose .msix installers that Partner Center keeps cloning from the last published submission, in a single certification pass. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This was referenced Jul 5, 2026
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.
Problem
The Microsoft Store still shows the old 1.1.0.0 loose
.msixinstallers alongside the current.msixbundle. Partner Center builds every new submission as a copy of the last published submission, so those stale packages keep getting re-cloned.msstore publishonly removes an inherited package when a newly submitted file has the same extension — our new file is a.msixbundle, so the1.1.0.0.msixfiles are never matched and linger indefinitely.Fix
Split the Store submission into publish-then-clean, done in a single submission (one certification pass):
msstore publish <bundle> --noCommit— creates/uploads the draft but does not commit.versiondiffers from the release version asPendingDelete,PUTs the edited draft, then commits and polls for acceptance.Why the REST API instead of
msstore submission updatemsstore submission updatepasses the whole submission JSON as a command-line argument (Windows caps args at ~32 KB) and deletes the draft whenpricing.priceId == "Base". The REST API avoids both hazards and lets us surgically flipfileStatus.Notes
.msix→ bundle). Going forward, bundle-over-bundle releases are self-cleaning; the version-based filter simply becomes a no-op.Requires no new secrets — reuses
PARTNER_CENTER_TENANT_ID,PARTNER_CENTER_CLIENT_ID,PARTNER_CENTER_CLIENT_SECRET, andSTORE_PRODUCT_ID.Co-authored-by: Copilot App 223556219+Copilot@users.noreply.github.com