msstore-cli

安装量: 5.5K
排名: #569

安装

npx skills add https://github.com/github/awesome-copilot --skill msstore-cli
Microsoft Store Developer CLI (msstore)
The Microsoft Store Developer CLI (
msstore
) is a cross-platform command-line interface for publishing and managing applications in the Microsoft Store. It integrates with Partner Center APIs and supports automated publishing workflows for various application types.
When to Use This Skill
Use this skill when you need to:
Configure Store credentials for API access
List applications in your Store account
Check the status of a submission
Publish submissions to the Store
Package applications for Store submission
Initialize projects for Store publishing
Manage package flights (beta testing)
Set up CI/CD pipelines for automated Store publishing
Manage gradual rollouts of submissions
Update submission metadata programmatically
Prerequisites
Windows 10+, macOS, or Linux
.NET 9 Desktop Runtime (Windows) or .NET 9 Runtime (macOS/Linux)
Partner Center account with appropriate permissions
Azure AD app registration with Partner Center API access
msstore CLI installed via one of these methods:
Microsoft Store
:
Download
WinGet
:
winget install "Microsoft Store Developer CLI"
Manual
Download from GitHub Releases Partner Center Setup Before using msstore, you need to create an Azure AD application with Partner Center access: Go to Partner Center Navigate to Account settings

User management

Azure AD applications Create a new application and note the Tenant ID , Client ID , and Client Secret Grant the application appropriate permissions (Manager or Developer role) Core Commands Reference info - Print Configuration Display the current credential configuration. msstore info Options: Option Description -v, --verbose Print verbose output reconfigure - Configure Credentials Configure or update Microsoft Store API credentials. msstore reconfigure [ options ] Options: Option Description -t, --tenantId Azure AD Tenant ID -s, --sellerId Partner Center Seller ID -c, --clientId Azure AD Application Client ID -cs, --clientSecret Client Secret for authentication -ct, --certificateThumbprint Certificate thumbprint (alternative to client secret) -cfp, --certificateFilePath Certificate file path (alternative to client secret) -cp, --certificatePassword Certificate password --reset Reset credentials without full reconfiguration Examples:

Configure with client secret

msstore reconfigure --tenantId $TENANT_ID --sellerId $SELLER_ID --clientId $CLIENT_ID --clientSecret $CLIENT_SECRET

Configure with certificate

msstore reconfigure --tenantId $TENANT_ID --sellerId $SELLER_ID --clientId $CLIENT_ID --certificateFilePath ./cert.pfx --certificatePassword MyPassword settings - CLI Settings Change settings of the Microsoft Store Developer CLI. msstore settings [ options ] Options: Option Description -t, --enableTelemetry Enable (true) or disable (false) telemetry Set Publisher Display Name msstore settings setpdn < publisherDisplayName

Sets the default Publisher Display Name for the init command. apps - Application Management List and retrieve application information. List Applications msstore apps list Lists all applications in your Partner Center account. Get Application Details msstore apps get < productId

Arguments: Argument Description productId The Store product ID (e.g., 9NBLGGH4R315) Example:

Get details of a specific app

msstore apps get 9NBLGGH4R315
submission - Submission Management
Manage Store submissions.
Sub-Command
Description
status
Get submission status
get
Get submission metadata and package info
getListingAssets
Get listing assets of a submission
updateMetadata
Update submission metadata
poll
Poll submission status until complete
publish
Publish a submission
delete
Delete a submission
Get Submission Status
msstore submission status
<
productId
>
Get Submission Details
msstore submission get
<
productId
>
Update Metadata
msstore submission updateMetadata
<
productId
>
<
metadata
>
Where
is a JSON string with the updated metadata. Because JSON contains characters that shells interpret (quotes, braces, etc.), you must quote and/or escape the value appropriately:
Bash/Zsh
Wrap the JSON in single quotes so the shell passes it through literally.
msstore submission updateMetadata 9NBLGGH4R315
'{"description":"My updated app"}'
PowerShell
Use single quotes (or escape double quotes inside a double-quoted string).
msstore submission updateMetadata 9NBLGGH4R315
'{"description":"My updated app"}'
cmd.exe
Escape each inner double quote with a backslash. msstore submission updateMetadata 9NBLGGH4R315 "{\"description\":\"My updated app\"}" Tip: For complex or multi-line metadata, save the JSON to a file and pass its contents instead to avoid quoting issues: msstore submission updateMetadata 9NBLGGH4R315 " $( cat metadata.json ) " Options: Option Description -s, --skipInitialPolling Skip initial status polling Publish Submission msstore submission publish < productId

Poll Submission msstore submission poll < productId

Polls until the submission status is PUBLISHED or FAILED. Delete Submission msstore submission delete < productId

Options: Option Description --no-confirm Skip confirmation prompt init - Initialize Project for Store Initialize a project for Microsoft Store publishing. Automatically detects project type and configures Store identity. msstore init < pathOrUrl

[ options ] Arguments: Argument Description pathOrUrl Project directory path or PWA URL Options: Option Description -n, --publisherDisplayName Publisher Display Name --package Also package the project --publish Package and publish (implies --package) -f, --flightId Publish to a specific flight -prp, --packageRolloutPercentage Gradual rollout percentage (0-100) -a, --arch Architecture(s): x86, x64, arm64 -o, --output Output directory for packages -ver, --version Version to use when building Supported Project Types: Windows App SDK / WinUI 3 UWP .NET MAUI Flutter Electron React Native for Desktop PWA (Progressive Web Apps) Examples:

Initialize WinUI project

msstore init ./my-winui-app

Initialize PWA

msstore init https://contoso.com --output ./pwa-package

Initialize and publish

msstore init ./my-app --publish package - Package for Store Package an application for Microsoft Store submission. msstore package < pathOrUrl

[ options ] Arguments: Argument Description pathOrUrl Project directory path or PWA URL Options: Option Description -o, --output Output directory for the package -a, --arch Architecture(s): x86, x64, arm64 -ver, --version Version for the package Examples:

Package for default architecture

msstore package ./my-app

Package for multiple architectures

msstore package ./my-app --arch x64,arm64 --output ./packages

Package with specific version

msstore package ./my-app --version 1.2 .3.0 publish - Publish to Store Publish an application to the Microsoft Store. msstore publish < pathOrUrl

[ options ] Arguments: Argument Description pathOrUrl Project directory path or PWA URL Options: Option Description -i, --inputFile Path to existing .msix or .msixupload file -id, --appId Application ID (if not initialized) -nc, --noCommit Keep submission in draft state -f, --flightId Publish to a specific flight -prp, --packageRolloutPercentage Gradual rollout percentage (0-100) Examples:

Publish project

msstore publish ./my-app

Publish existing package

msstore publish ./my-app --inputFile ./packages/MyApp.msixupload

Publish as draft

msstore publish ./my-app --noCommit

Publish with gradual rollout

msstore publish ./my-app --packageRolloutPercentage 10 flights - Package Flight Management Manage package flights (beta testing groups). Sub-Command Description list List all flights for an app get Get flight details delete Delete a flight create Create a new flight submission Manage flight submissions List Flights msstore flights list < productId

Get Flight Details msstore flights get < productId

< flightId

Create Flight msstore flights create < productId

< friendlyName

--group-ids < group-ids

Options: Option Description -g, --group-ids Flight group IDs (comma-separated) -r, --rank-higher-than Flight ID to rank higher than Delete Flight msstore flights delete < productId

< flightId

Flight Submissions

Get flight submission

msstore flights submission get < productId

< flightId

Publish flight submission

msstore flights submission publish < productId

< flightId

Check flight submission status

msstore flights submission status < productId

< flightId

Poll flight submission

msstore flights submission poll < productId

< flightId

Delete flight submission

msstore flights submission delete < productId

< flightId

Flight Rollout Management

Get rollout status

msstore flights submission rollout get < productId

< flightId

Update rollout percentage

msstore flights submission rollout update < productId

< flightId

< percentage

Halt rollout

msstore flights submission rollout halt < productId

< flightId

Finalize rollout (100%)

msstore flights submission rollout finalize < productId

< flightId

Common Workflows Workflow 1: First-Time Store Setup

1. Install the CLI

winget install "Microsoft Store Developer CLI"

2. Configure credentials (get these from Partner Center)

msstore reconfigure --tenantId $TENANT_ID --sellerId $SELLER_ID --clientId $CLIENT_ID --clientSecret $CLIENT_SECRET

3. Verify configuration

msstore info

4. List your apps to confirm access

msstore apps list Workflow 2: Initialize and Publish New App

1. Navigate to project

cd my-winui-app

2. Initialize for Store (creates/updates app identity)

msstore init .

3. Package the application

msstore package . --arch x64,arm64

4. Publish to Store

msstore publish .

5. Check submission status

msstore submission status < productId

Workflow 3: Update Existing App

1. Build your updated application

dotnet publish -c Release

2. Package and publish

msstore publish ./my-app

Or publish from existing package

msstore publish ./my-app --inputFile ./artifacts/MyApp.msixupload Workflow 4: Gradual Rollout

1. Publish with initial rollout percentage

msstore publish ./my-app --packageRolloutPercentage 10

2. Monitor and increase rollout

msstore submission poll < productId

3. (After validation) Finalize to 100%

This completes via Partner Center or submission update

Workflow 5: Beta Testing with Flights

1. Create a flight group in Partner Center first

Then create a flight

msstore flights create < productId

"Beta Testers" --group-ids "group-id-1,group-id-2"

2. Publish to the flight

msstore publish ./my-app --flightId < flightId

3. Check flight submission status

msstore flights submission status < productId

< flightId

4. After testing, publish to production

msstore publish ./my-app Workflow 6: CI/CD Pipeline Integration

GitHub Actions example

name : Publish to Store on : release : types : [ published ] jobs : publish : runs-on : windows - latest steps : - uses : actions/checkout@v4 - name : Setup .NET uses : actions/setup - dotnet@v4 with : dotnet-version : '9.0.x' - name : Install msstore CLI run : winget install "Microsoft Store Developer CLI" - - accept - package - agreements - - accept - source - agreements - name : Configure Store credentials run : | msstore reconfigure --tenantId ${{ secrets.TENANT_ID }} --sellerId ${{ secrets.SELLER_ID }} --clientId ${{ secrets.CLIENT_ID }} --clientSecret ${{ secrets.CLIENT_SECRET }} - name : Build application run : dotnet publish - c Release - name : Publish to Store run : msstore publish ./src/MyApp Integration with winapp CLI The winapp CLI (v0.2.0+) integrates with msstore via the winapp store subcommand:

These commands are equivalent:

msstore reconfigure --tenantId xxx --clientId xxx --clientSecret xxx winapp store reconfigure --tenantId xxx --clientId xxx --clientSecret xxx

List apps

msstore apps list winapp store apps list

Publish

msstore publish ./my-app winapp store publish ./my-app Use winapp store when you want a unified CLI experience for both packaging and publishing. Troubleshooting Issue Solution Authentication failed Verify credentials with msstore info ; re-run msstore reconfigure App not found Ensure the product ID is correct; run msstore apps list to verify Insufficient permissions Check Azure AD app role in Partner Center (needs Manager or Developer) Package validation failed Ensure package meets Store requirements; check Partner Center for details Submission stuck Run msstore submission poll to check status Flight not found Verify flight ID with msstore flights list Rollout percentage invalid Value must be between 0 and 100 Init fails for PWA Ensure URL is publicly accessible and has valid web app manifest Environment Variables The CLI supports environment variables for credentials: Variable Description MSSTORE_TENANT_ID Azure AD Tenant ID MSSTORE_SELLER_ID Partner Center Seller ID MSSTORE_CLIENT_ID Azure AD Application Client ID MSSTORE_CLIENT_SECRET Client Secret References Microsoft Store Developer CLI Documentation CLI Commands Reference GitHub Repository Partner Center API App Submission API Package Flights Overview Gradual Package Rollout

返回排行榜