You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This article provides instructions for Command Palette extensions that were created using the Command Palette template.
12
+
This article provides instructions for Command Palette extensions that you create with the Command Palette template.
13
13
14
14
You can publish your Command Palette extension through the Microsoft Store, WinGet, or both. This article includes instructions for preparing and publishing your extension to both distribution platforms.
15
15
16
16
## Microsoft Store
17
17
18
-
Command Palette extensions can be published to the Microsoft Store. The publishing process is similar to other apps or extensions. You create a new submission in Partner Center and upload your `.msix` package. Command Palette automatically discovers your extension when users install it from the Microsoft Store.
18
+
You can publish Command Palette extensions to the Microsoft Store. The publishing process is similar to other apps or extensions. You create a new submission in Partner Center and upload your `.msix` package. Command Palette automatically discovers your extension when users install it from the Microsoft Store.
19
19
20
20
> [!NOTE]
21
21
> **MSIX packages explained**
@@ -61,11 +61,11 @@ Publishing to the Microsoft Store provides your extension with wide reach across
61
61
62
62
### Set up Microsoft Store
63
63
64
-
1.Navigate to the [Microsoft Partner Center](https://partner.microsoft.com/dashboard/home).
64
+
1.Go to the [Microsoft Partner Center](https://partner.microsoft.com/dashboard/home).
65
65
1. Under **Workspaces**, select **Apps and games**.
66
66
1. Select **+ New Product**.
67
67
1. Select **MSIX or PWA app**.
68
-
1. Create a name or reserve a product name.
68
+
1. Create or reserve a product name.
69
69
1. Start the submission and complete as much as you can until you reach the **Packages** section.
70
70
1. In the left navigation, under **Product Management**, select **Product identity**.
71
71
1. Copy the following values for use in the next steps:
@@ -77,12 +77,12 @@ Publishing to the Microsoft Store provides your extension with wide reach across
1. Update the ItemGroup for images to get all of them by removing:
109
+
1. Update the `ItemGroup` for images to get all of them by removing:
110
110
111
111
```xml
112
112
<ItemGroup>
@@ -170,7 +170,7 @@ with
170
170
```
171
171
172
172
> [!NOTE]
173
-
> The `AppxPackageDir="AppPackages\x64\"`is needed so that the ARM64 build doesn't overwrite the x64 build
173
+
> You need the `AppxPackageDir="AppPackages\x64\"`setting so that the ARM64 build doesn't overwrite the x64 build.
174
174
175
175
1. Locate the MSIX files:
176
176
@@ -179,7 +179,7 @@ with
179
179
```
180
180
181
181
> [!TIP]
182
-
> If you do not see your MSIX files, try `dir bin\ -Recurse -Filter "*.msix"`
182
+
> If you don't see your MSIX files, try `dir bin\ -Recurse -Filter "*.msix"`.
183
183
184
184
1. Note the locations of the `<ExtensionName>_<VersionNumber>_x64.msix` and `<ExtensionName>_<VersionNumber>_arm64.msix` files.
185
185
@@ -222,8 +222,8 @@ with
222
222
223
223
Verify your MSIX build is ready by checking:
224
224
225
-
- ✅ You've updated `Package.appxmanifest` with correct Identity and Properties
226
-
- ✅ You've updated `<ExtensionName>.csproj` with AppxPackage properties
225
+
- ✅ You updated `Package.appxmanifest` with correct Identity and Properties
226
+
- ✅ You updated `<ExtensionName>.csproj` with AppxPackage properties
227
227
- ✅ Both x64 and ARM64 MSIX files were built successfully
228
228
- ✅ The `bundle_mapping.txt` file contains correct paths to both MSIX files
229
229
- ✅ The `.msixbundle` file was created without errors
@@ -233,22 +233,22 @@ If any items are missing or failed, review the build commands and check for erro
233
233
234
234
### Microsoft Store submission
235
235
236
-
1.Navigate to the [Microsoft Partner Center](https://partner.microsoft.com/dashboard/home) and open your newly created extension project.
236
+
1.Go to the [Microsoft Partner Center](https://partner.microsoft.com/dashboard/home) and open your newly created extension project.
237
237
1. In **Packages**, upload the created MSIX bundle.
238
238
1. Complete the rest of the submission. The following suggestions can help you:
239
239
1. In **Languages supported in packages**, under your supported language (for example, English (United States)), in **Description**, make sure to include `<ExtensionName> integrates with the Windows Command Palette to...`
240
-
1. In the left navigation, locate **Supplemental info** and select **Additional Testing Information**. Add instructions about needing Powertoys and Command Palette. Here's an [example](https://github.com/chatasweetie/CmdPalExtensions/blob/main/microsoftStoreResources/TesterInstructions.txt).
240
+
1. In the left navigation, locate **Supplemental info** and select **Additional Testing Information**. Add instructions about needing PowerToys and Command Palette. Here's an [example](https://github.com/chatasweetie/CmdPalExtensions/blob/main/microsoftStoreResources/TesterInstructions.txt).
241
241
1. Submit your extension to the store.
242
242
243
-
After submission, Microsoft will review your extension for certification. Monitor your submission status in Partner Center and check for email notifications about approval. Once approved, your extension will be available in the Microsoft Store within a few hours.
243
+
After submission, Microsoft reviews your extension for certification. Monitor your submission status in Partner Center and check for email notifications about approval. Once approved, your extension is available in the Microsoft Store within a few hours.
244
244
245
245
## WinGet
246
246
247
-
Publishing packages to WinGet is the recommended way to share your extensions with users. Extension packages that are listed on WinGet can be discovered and installed directly from Command Palette.
247
+
To share your extensions with users, publish your packages to WinGet. Users can discover and install extension packages listed on WinGet directly from Command Palette.
248
248
249
249
> [!TIP]
250
250
> **What is WinGet?**
251
-
> WinGet is Microsoft's open-source command-line package manager for Windows. It's similar to package managers like npm or pip, but for Windows applications. Publishing to WinGet allows users to install your extension with a simple `winget install` command and enables automatic discovery within Command Palette.
251
+
> WinGet is Microsoft's open-source command-line package manager for Windows. It's similar to package managers like npm or pip, but for Windows applications. When you publish to WinGet, users can install your extension with a simple `winget install` command. It also enables automatic discovery within Command Palette.
252
252
253
253
Before submitting your manifest to WinGet, check the following two requirements:
254
254
@@ -273,7 +273,7 @@ Dependencies:
273
273
274
274
## Guide to WinGet publishing
275
275
276
-
Publishing to WinGet is the recommended distribution method for Command Palette extensions as it enables automatic discovery and installation directly within Command Palette. This guide covers the majority of the WinGet publication process, from preparing your project and creating build scripts to setting up GitHub Actions automation and submitting your first package manifest. You'll learn how to create installer packages, configure automated builds, and navigate the WinGet submission workflow to make your extension easily discoverable and installable for users.
276
+
Publishing to WinGet is the recommended distribution method for Command Palette extensions. It enables automatic discovery and installation directly within Command Palette. This guide covers most of the WinGet publication process, from preparing your project and creating build scripts to setting up GitHub Actions automation and submitting your first package manifest. You'll learn how to create installer packages, configure automated builds, and navigate the WinGet submission workflow to make your extension easily discoverable and installable for users.
277
277
278
278
### Requirements
279
279
@@ -296,7 +296,7 @@ Publishing to WinGet is the recommended distribution method for Command Palette
296
296
1. Locate `CLSID`
297
297
1. Open the extension's main `.cs` file (for example, `<ExtensionName>.cs`).
298
298
1. Look for the `[Guid("...")]` attribute above the class declaration.
299
-
1. This GUID is your CLSID - Keep note of this because it will be used in th next step
299
+
1. This GUID is your CLSID - Keep note of this because it will be used in the next step
300
300
301
301
```csharp
302
302
// Example from <ExtensionName>.cs
@@ -308,8 +308,8 @@ Publishing to WinGet is the recommended distribution method for Command Palette
308
308
> **What is a CLSID?**
309
309
> A CLSID (Class Identifier) is a unique identifier that Windows uses to identify COM (Component Object Model) components. Each Command Palette extension needs a unique CLSID so Windows can properly register and load your extension. This GUID is automatically generated when you create your extension project.
310
310
311
-
1. Make sure that your in the directory that contains your `<ExtensionName>.cs` for the next two files being created.
312
-
1. Create a `setup-template.iss` file, for a simple extension you can copy and customize the following:
311
+
1. Make sure that you're in the directory that contains your `<ExtensionName>.cs` for the next two files being created.
312
+
1. Create a `setup-template.iss` file. For a simple extension, you can copy and customize the following template:
> You can test this locally by having[.NET 9](https://dotnet.microsoft.com/download/dotnet/9.0) and [Inno Setup](https://jrsoftware.org/isdl.php) installed.
472
+
> You can test this process locally by installing[.NET 9](https://dotnet.microsoft.com/download/dotnet/9.0) and [Inno Setup](https://jrsoftware.org/isdl.php) installed.
> GitHub Actions is a CI/CD platform that automates software workflows directly in your GitHub repository. For Command Palette extensions, GitHub Actions can automatically build your installer whenever you push code changes, create releases, and even submit updates to WinGet - eliminating manual build steps and ensuring consistent, reproducible builds.
493
493
494
-
Now we'll set up GitHub Actions to automate the build and release process:
494
+
Now set up GitHub Actions to automate the build and release process:
495
495
496
-
1. `cd ..` up a directory, you should be in the directory that contains `<ExtensionName>.sln`
497
-
1. create a new repo:
496
+
1. Run `cd ..` to go up a directory. You should be in the directory that contains `<ExtensionName>.sln`.
497
+
1. Create a new repo.
498
498
499
499
```powershell
500
500
mkdir .github/workflows
@@ -633,17 +633,17 @@ jobs:
633
633
shell: pwsh
634
634
```
635
635
636
-
This file is a Github Action scrip that does the following:
636
+
This file is a GitHub Action script that does the following tasks:
637
637
638
638
- Setup (.NET, Inno Setup)
639
639
- Get Version (simple version detection)
640
640
- Build App (straightforward dotnet publish)
641
641
- Create Installer (simple Inno Setup call)
642
642
- Upload Results (clear artifact + release steps)
643
643
644
-
1. Update the placeholders in `release-extension.yml`:
645
-
1. git commit the 3 new files: `build-exe.ps1`, `setup.iss`,`release-extension.yml`
646
-
1. Push changes to Github.
644
+
1. Update the placeholders in `release-extension.yml`.
645
+
1. Commit the three new files: `build-exe.ps1`, `setup.iss`, and `release-extension.yml`.
646
+
1. Push changes to GitHub.
647
647
1. Trigger the GitHub Action:
648
648
649
649
```powershell
@@ -663,8 +663,7 @@ Verify your GitHub Actions setup by checking:
663
663
### WinGet submission
664
664
665
665
> [!IMPORTANT]
666
-
> The first submission must be manual. `wingetcreate new` requires interactive input for package details
667
-
666
+
> You must manually submit the first version. `wingetcreate new` requires interactive input for package details
668
667
669
668
#### Manual first submission
670
669
@@ -678,22 +677,22 @@ Verify your GitHub Actions setup by checking:
678
677
> [!TIP]
679
678
> To get the GitHub Release URL: Go to your release page, under **Assets**, right-click the `.exe` file and select "Copy link address".
680
679
681
-
1. When `wingetcreate` prompts you, press **Enter** if the suggested response is pulled from the EXE file, for example: `PackageIdentifier`, `PackageVersion`, `Publisher`, etc.
680
+
1. When `wingetcreate` prompts you, press **Enter** if the suggested response is pulled from the EXE file, for example: `PackageIdentifier`, `PackageVersion`, `Publisher`, and so on.
- "Would you like to modify the optional default locale fields?"→ **No**
684
683
- "Would you like to modify the optional installer fields?"→ **No**
685
684
- "Would you like to make changes to this manifest?"→ **No**
686
685
- **Final submission question**:
687
686
- "Would you like to submit your manifest to the Windows Package Manager repository?"→ **Yes**
688
687
689
-
After answering "Yes" to submit:
688
+
After you answer "Yes" to submit:
690
689
691
690
- `wingetcreate`forks the microsoft/winget-pkgs repository to your GitHub account
692
691
- Creates a new branch with your package manifests
693
692
- Opens a pull request automatically
694
693
- Provides the PR URL for tracking
695
694
696
-
After submitting your pull request, the WinGet team will review your manifest for compliance and accuracy. You can monitor the PR status on GitHub and respond to any feedback from reviewers. Once approved and merged, your extension will be available through WinGet within a few hours.
695
+
After you submit your pull request, the WinGet team reviews your manifest for compliance and accuracy. You can monitor the PR status on GitHub and respond to any feedback from reviewers. Once approved and merged, your extension will be available through WinGet within a few hours.
0 commit comments