67 lines
2.6 KiB
Markdown
67 lines
2.6 KiB
Markdown
---
|
|
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.
|
|
---
|
|
|
|
# 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 install` discovery
|
|
- 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](references/store-publishing.md) for the complete step-by-step guide.
|
|
|
|
**Summary:**
|
|
1. Register for Partner Center
|
|
2. Update `Package.appxmanifest` and `.csproj` with Partner Center identity
|
|
3. Build MSIX for x64 and ARM64
|
|
4. Create MSIX bundle
|
|
5. Submit to Partner Center
|
|
|
|
### WinGet Publishing
|
|
See [winget-publishing.md](references/winget-publishing.md) for the complete step-by-step guide.
|
|
|
|
**Summary:**
|
|
1. Switch project to unpackaged mode
|
|
2. Create Inno Setup installer script
|
|
3. Build EXE installers
|
|
4. Submit manifest via `wingetcreate new`
|
|
5. Optionally automate with GitHub Actions
|
|
|
|
## Prerequisites
|
|
|
|
- [Visual Studio](https://visualstudio.microsoft.com/) with C# and WinUI workloads
|
|
- [Partner Center account](https://partner.microsoft.com/dashboard/home) (for Store publishing)
|
|
- [GitHub CLI](https://cli.github.com/) (for WinGet publishing)
|
|
- [WingetCreate](https://github.com/microsoft/winget-create) — `winget install Microsoft.WingetCreate`
|
|
- [Inno Setup](https://jrsoftware.org/isdl.php) (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-extension` tag for CmdPal discovery
|
|
- MSIX packages require both x64 and ARM64 builds for Store submission
|
|
- WindowsAppSdk must be listed as a dependency in WinGet manifests
|