publish-extension
Publish your Command Palette extension to the Microsoft Store or WinGet. Use when asked to publish, distribute, release, deploy to store, create MSIX packages, submit to WinGet, set up CI/CD for releases, or automate builds with GitHub Actions.
- License 许可
- MIT
- 最近更新
- 2026-11-11
- Stars
- ★ 14w
- Forks
- 8.7k
01 前言 Front Matter
- name
- publish-extension
- description
- Publish your Command Palette extension to the Microsoft Store or WinGet. Use when asked to publish, distribute, release, deploy to store, create MSIX packages, submit to WinGet, set up CI/CD for releases, or automate builds with GitHub Actions.
02 资源文件 2
- 参考文档references/store-publishing.md6.2 KB
- 参考文档references/winget-publishing.md12.9 KB
03 SKILL.md 正文
Publish Your Command Palette Extension
Guide for distributing your Command Palette extension through the Microsoft Store, WinGet, or both.
When to Use This Skill
- Publishing your extension to the Microsoft Store
- Submitting your extension to WinGet for
winget installdiscovery - Setting up GitHub Actions to automate builds and releases
- Creating MSIX packages for Store submission
- Creating EXE installers for WinGet submission
Publishing Options
| Channel | Package Format | Discovery | Auto-Updates |
|---|---|---|---|
| Microsoft Store | MSIX bundle | Store app, ms-windows-store:// link |
Yes |
| WinGet | EXE installer | winget install, CmdPal browse |
Yes (via manifest) |
Recommendation: Publish to both for maximum reach. WinGet enables direct discovery from within Command Palette.
Workflows
Microsoft Store Publishing
See store-publishing.md for the complete step-by-step guide.
Summary:
- Register for Partner Center
- Update
Package.appxmanifestand.csprojwith Partner Center identity - Build MSIX for x64 and ARM64
- Create MSIX bundle
- Submit to Partner Center
WinGet Publishing
See winget-publishing.md for the complete step-by-step guide.
Summary:
- Switch project to unpackaged mode
- Create Inno Setup installer script
- Build EXE installers
- Submit manifest via
wingetcreate new - Optionally automate with GitHub Actions
Prerequisites
- Visual Studio with C# and WinUI workloads
- Partner Center account (for Store publishing)
- GitHub CLI (for WinGet publishing)
- WingetCreate —
winget install Microsoft.WingetCreate - Inno Setup (for WinGet EXE packaging)
Important Notes
- Your extension's CLSID (the
[Guid("...")]in your main .cs file) must be unique and consistent across all files - WinGet manifests must include the
windows-commandpalette-extensiontag for CmdPal discovery - MSIX packages require both x64 and ARM64 builds for Store submission
- WindowsAppSdk must be listed as a dependency in WinGet manifests
04 同仓库更多 Skills
winmd-api-search
Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI/ML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values).
ui-tests-migration
Create, migrate, and stabilize PowerToys UI tests with Microsoft.PowerToys.UITest.Next and winappcli, through local VM success, commit/push, and CI validation. Use for ports, new UITest projects, flaky CI tests, persistent Hyper-V validation, Settings IPC authentication/test signing, Explorer/Shell selection, preview handlers, thumbnail providers, hotkey activation, stateful process lifecycle, composed WinUI/WebView visual baselines, or foreground failures. Covers APIs, scaffolding, test design, diagnostics, and the required handoff to ui-tests-pipeline-ci. Keywords: UI test, UITests, UITestAutomation.Next, winappcli, WinAppDriver, Selenium, Settings IPC, not-microsoft-signed, Authenticode, local VM, Hyper-V, checkpoint, migrate, flaky, CI stability, Explorer, Shell extension, WebView2.
release-note-generation
Toolkit for generating PowerToys stable or preview release notes from GitHub milestones, commit ranges, or Azure DevOps release-candidate builds. Prepare draft preview releases with three-component GitHub tags while preserving four-component build and asset versions. Use when asked to create release notes, summarize milestone PRs, generate changelog, prepare a draft preview release, calculate PR deltas across main and stable, update release documentation, manage PR milestones, or prepare and validate release assets.
powertoys-verification
Verify PowerToys behavior end-to-end with the winapp CLI across two scenarios: (A) a module's release checklist against the installed build; (B) PR validation — derive each PR's checklist from its description + diff, then drive it against the installed build (a merged/shipped PR, or a whole release/hotfix set) or by building + sideloading the module when the PR isn't in the build yet (unmerged or not-yet-released). Drive each item via UIA invoke / Named Events / settings.json edits / clipboard / GPO / SendInput, and emit a structured PASS / FAIL / BLOCKED verdict per item with evidence (FAIL distinguishes product defects from stale/ambiguous checklist items). Use when asked to verify a module checklist, validate a PR, sign off a release/hotfix's PRs, or QA installed/sideloaded PowerToys bits. Combines generic winapp ui mechanics (references/winapp-ui-testing.md) with PT-specific recipes, per-scenario playbooks (references/scenarios/), and the helper .ps1 files shipped with this skill.
add-fallback-commands
Add fallback commands to your Command Palette extension for catch-all search behavior. Use when asked to add search functionality, query matching, direct input handling, calculator-style evaluation, URL opening, command execution, or results that appear when no other extension matches. Used by 14 of 20 built-in extensions.
add-extension-settings
Add a settings page to your Command Palette extension. Use when asked to add settings, preferences, configuration options, toggles, text inputs, dropdowns, or user-customizable behavior. Covers ToggleSetting, TextSetting, ChoiceSetSetting, and persistence.