Skip to content

Commit 773d847

Browse files
Merge pull request #5956 from MicrosoftDocs/Sankalp/UpdateCLIDocs
Sankalp/update cli docs
2 parents 0f88f0a + cff3d5a commit 773d847

10 files changed

Lines changed: 565 additions & 191 deletions
29.7 KB
Loading
29.6 KB
Loading
79.6 KB
Loading
40.7 KB
Loading
36.7 KB
Loading
Lines changed: 346 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,346 @@
1+
---
2+
description: How to run the Microsoft Store Developer CLI (preview) commands for MSI/EXE apps.
3+
title: Microsoft Store Developer CLI (preview) Commands (MSI/EXE)
4+
ms.date: 11/06/2025
5+
ms.topic: article
6+
zone_pivot_groups: msstoredevcli-installer-packaging
7+
---
8+
9+
# Commands (MSI/EXE)
10+
11+
## Installation
12+
13+
:::zone pivot="msstoredevcli-installer-windows"
14+
15+
### Step 1: Install .NET Windows Runtime
16+
17+
If you haven't done so already, install the latest version of the [.NET 8 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/8.0). This is a requirement to run the Microsoft Store Developer CLI.
18+
19+
The easiest way to install it is to use _winget_:
20+
21+
```console
22+
winget install Microsoft.DotNet.DesktopRuntime.8
23+
```
24+
25+
### Step 2: Install the Microsoft Store Developer CLI on Windows
26+
27+
You can download the Microsoft Store Developer CLI from the [Microsoft Store](https://www.microsoft.com/store/apps/9P53PC5S0PHJ). Alternatively, you can use _winget_:
28+
29+
```console
30+
winget install "Microsoft Store Developer CLI"
31+
```
32+
33+
:::zone-end
34+
:::zone pivot="msstoredevcli-installer-macos"
35+
36+
### Step 1: Install .NET macOS Runtime
37+
38+
If you haven't done so already, install the latest version of the [.NET 8 Runtime](https://dotnet.microsoft.com/download/dotnet/8.0). This is a requirement to run the Microsoft Store Developer CLI.
39+
40+
### Step 2: Install the Microsoft Store Developer CLI on macOS
41+
42+
You can download the macOS _.tar.gz_ for your specific architecture (x64 or Arm64) from the [Microsoft Store Developer CLI releases page](https://aka.ms/msstoredevcli/releases). Once downloaded, extract the archive and put it in your PATH, however you want to do that, for example:
43+
44+
```console
45+
mkdir MSStoreCLI
46+
curl https://github.com/microsoft/msstore-cli/releases/latest/download/MSStoreCLI-osx-x64.tar.gz -o MSStoreCLI-osx-x64.tar.gz
47+
tar -xvf MSStoreCLI-osx-x64.tar.gz -C ./MSStoreCLI
48+
sudo cp -R MSStoreCLI/. /usr/local/bin
49+
```
50+
51+
Alternatively, you can use _brew_:
52+
53+
```console
54+
brew install microsoft/msstore-cli/msstore-cli
55+
```
56+
57+
:::zone-end
58+
:::zone pivot="msstoredevcli-installer-linux"
59+
60+
### Step 1: Install .NET Linux Runtime
61+
62+
If you haven't done so already, install the latest version of the [.NET 8 Runtime](https://dotnet.microsoft.com/download/dotnet/8.0). This is a requirement to run the Microsoft Store Developer CLI.
63+
64+
### Step 2: Install the Microsoft Store Developer CLI on Linux
65+
66+
You can download the Linux _.tar.gz_ for your specific architecture (x64 or Arm64) from the [Microsoft Store Developer CLI releases page](https://aka.ms/msstoredevcli/releases). Once downloaded, extract the archive and put it in your PATH, however you want to do that, for example:
67+
68+
```console
69+
mkdir MSStoreCLI
70+
wget https://github.com/microsoft/msstore-cli/releases/latest/download/MSStoreCLI-linux-x64.tar.gz
71+
tar -xvf MSStoreCLI-linux-x64.tar.gz -C ./MSStoreCLI
72+
sudo cp -R MSStoreCLI/. /usr/local/bin
73+
```
74+
75+
Alternatively, you can use _brew_:
76+
77+
```console
78+
brew install microsoft/msstore-cli/msstore-cli
79+
```
80+
81+
:::zone-end
82+
83+
## Info Command
84+
85+
Print existing configuration.
86+
87+
#### Usage
88+
89+
```console
90+
msstore info
91+
```
92+
93+
#### Options
94+
95+
| Option | Description |
96+
| ------------- | -------------------------------- |
97+
| -v, --verbose | Print verbose output. |
98+
| -?, -h, --help | Show help and usage information. |
99+
100+
## Reconfigure Command
101+
102+
Re-configure the Microsoft Store Developer CLI. You can provide either a Client Secret or a Certificate. Certificates can be provided either through its Thumbprint or by providing a file path (with or without a password).
103+
104+
#### Usage
105+
106+
```console
107+
msstore reconfigure
108+
```
109+
110+
#### Options
111+
112+
| Option | Description |
113+
| ---------------------------- | ------------------------------------------------------- |
114+
| -t, --tenantId | Specify the tenant Id that should be used. |
115+
| -s, --sellerId | Specify the seller Id that should be used. |
116+
| -c, --clientId | Specify the client Id that should be used. |
117+
| -cs, --clientSecret | Specify the client Secret that should be used. |
118+
| -ct, --certificateThumbprint | Specify the certificate Thumbprint that should be used. |
119+
| -cfp, --certificateFilePath | Specify the certificate file path that should be used. |
120+
| -cp, --certificatePassword | Specify the certificate password that should be used. |
121+
| --reset | Only reset the credentials, without starting over. |
122+
| -v, --verbose | Print verbose output. |
123+
| -?, -h, --help | Show help and usage information. |
124+
125+
## Settings Command
126+
127+
Change settings of the Microsoft Store Developer CLI.
128+
129+
#### Usage
130+
131+
```console
132+
msstore settings
133+
```
134+
135+
#### Options
136+
137+
| Option | Description |
138+
| --------------------- | ------------------------------------------------- |
139+
| -t, --enableTelemetry | Enable (empty/true) or Disable (false) telemetry. |
140+
| -v, --verbose | Print verbose output. |
141+
| -?, -h, --help | Show help and usage information. |
142+
143+
### SetPDN Sub-Command
144+
145+
Set the Publisher Display Name property.
146+
147+
#### Usage
148+
149+
```console
150+
msstore settings setpdn <publisherDisplayName>
151+
```
152+
153+
#### Arguments
154+
155+
| Argument | Description |
156+
| ---------------------- | -------------------------------------------------------------- |
157+
| `publisherDisplayName` | The Publisher Display Name property that will be set globally. |
158+
159+
#### Options
160+
161+
| Option | Description |
162+
| --------------------- | ------------------------------- |
163+
| -?, -h, --help | Show help and usage information.|
164+
165+
## Submission Command
166+
167+
| Sub-Command | Description |
168+
| -----------------------------------------------------------| ----------------------------------------------------------- |
169+
| [status](#submission---status---usage) | Gets the status of a submission. |
170+
| [get](#submission---get---usage) | Gets the metadata and package info of a specific submission.|
171+
| [getListingAssets](#submission---getlistingassets---usage) | Gets the listing assets of a specific submission. |
172+
| [updateMetadata](#submission---updatemetadata---usage) | Updates the metadata of a specific submission. |
173+
| [update](#submission---update---usage) | Updates the package info of a specific submission. |
174+
| [poll](#submission---poll---usage) | Polls the status of a submission. |
175+
| [publish](#submission---publish---usage) | Publishes a specific submission. |
176+
177+
#### Submission - Status - Usage
178+
179+
```console
180+
msstore submission status <productId>
181+
```
182+
183+
#### Arguments
184+
185+
| Argument | Description |
186+
| ----------- | --------------------- |
187+
| `productId` | The Partner center ID.|
188+
189+
#### Options
190+
191+
| Option | Description |
192+
| --------------------- | -------------------------------- |
193+
| -v, --verbose | Print verbose output. |
194+
| -?, -h, --help | Show help and usage information. |
195+
196+
#### Submission - Get - Usage
197+
198+
```console
199+
msstore submission get <productId>
200+
```
201+
202+
#### Arguments
203+
204+
| Argument | Description |
205+
| ----------- | --------------------- |
206+
| `productId` | The Partner center ID.|
207+
208+
#### Options
209+
210+
| Option | Description |
211+
| --------------------- | -------------------------------------------------------- |
212+
| -l, --language | Select which language you want to retrieve. [default: en]|
213+
| -v, --verbose | Print verbose output. |
214+
| -?, -h, --help | Show help and usage information. |
215+
216+
#### Submission - GetListingAssets - Usage
217+
218+
```console
219+
msstore submission getListingAssets <productId>
220+
```
221+
222+
#### Arguments
223+
224+
| Argument | Description |
225+
| ----------- | --------------------- |
226+
| `productId` | The Partner center ID.|
227+
228+
#### Options
229+
230+
| Option | Description |
231+
| --------------------- | -------------------------------------------------------- |
232+
| -l, --language | Select which language you want to retrieve. [default: en]|
233+
| -v, --verbose | Print verbose output. |
234+
| -?, -h, --help | Show help and usage information. |
235+
236+
#### Submission - UpdateMetadata - Usage
237+
238+
```console
239+
msstore submission updateMetadata <productId> <metadata>
240+
```
241+
242+
#### Arguments
243+
244+
| Argument | Description |
245+
| ----------- | ----------------------------------------- |
246+
| `productId` | The Partner center ID. |
247+
| `metadata` | The updated JSON metadata representation. |
248+
249+
#### Options
250+
251+
| Option | Description |
252+
| ------------------------ | ---------------------------------------------------------------------- |
253+
| -s, --skipInitialPolling | Skip the initial polling before executing the action. [default: False] |
254+
| -v, --verbose | Print verbose output. |
255+
| -?, -h, --help | Show help and usage information. |
256+
257+
#### Submission - Update - Usage
258+
259+
```console
260+
msstore submission update <productId> <package>
261+
```
262+
263+
#### Arguments
264+
265+
| Argument | Description |
266+
| ----------- | -------------------------------------------------- |
267+
| `productId` | The Partner center ID. |
268+
| `package` | The updated JSON representation of the app package.|
269+
270+
#### Options
271+
272+
| Option | Description |
273+
| ------------------------ | ---------------------------------------------------------------------- |
274+
| -s, --skipInitialPolling | Skip the initial polling before executing the action. [default: False] |
275+
| -v, --verbose | Print verbose output. |
276+
| -?, -h, --help | Show help and usage information. |
277+
278+
#### Submission - Poll - Usage
279+
280+
```console
281+
msstore submission poll <productId>
282+
```
283+
284+
#### Arguments
285+
286+
| Argument | Description |
287+
| ----------- | --------------------- |
288+
| `productId` | The Partner center ID.|
289+
290+
#### Options
291+
292+
| Option | Description |
293+
| --------------------- | -------------------------------- |
294+
| -v, --verbose | Print verbose output. |
295+
| -?, -h, --help | Show help and usage information. |
296+
297+
#### Submission - Publish - Usage
298+
299+
```console
300+
msstore submission publish <productId>
301+
```
302+
303+
#### Arguments
304+
305+
| Argument | Description |
306+
| ----------- | --------------------- |
307+
| `productId` | The Partner center ID.|
308+
309+
#### Options
310+
311+
| Option | Description |
312+
| --------------------- | -------------------------------- |
313+
| -v, --verbose | Print verbose output. |
314+
| -?, -h, --help | Show help and usage information. |
315+
316+
## CI/CD Environments
317+
318+
The Microsoft Store Developer CLI (preview) supports running in CI/CD environments. This means that you can use the Microsoft Store Developer CLI (preview) in your CI/CD pipelines to, for example, automatically publish your applications to the Microsoft Store.
319+
320+
The firststep to achieve this it to install the Microsoft Store Developer CLI (preview) on your CI/CD environment. You can find instructions on how to do this [here](./commands-exe.md#installation).
321+
322+
After installing the Microsoft Store Developer CLI (preview), you have to configure your environment to be able to run commands. You can do this by running the `msstore reconfigure` command with the specific parameters that identify your partner center account (_TenantId_, _SellerId_, _ClientId_). You also need to provide either a _ClientSecret_ or a _Certificate_.
323+
324+
It is very important to hide these credentials, as they will be visible in the logs of your CI/CD pipeline. You can do this by using **secrets**. Each CI/CD pipeline system have different names for these secrets. For example, Azure DevOps call them [_Secret Variables_](/azure/devops/pipelines/process/set-secret-variables), but GitHub Action calls them [Encrypted Secrets](https://docs.github.com/actions/security-guides/encrypted-secrets). Create one **secret** for each of the parameters (_TenantId_, _SellerId_, _ClientId_, and _ClientSecret_ or a _Certificate_), and then use the `reconfigure` command to setup your environment.
325+
326+
For example:
327+
328+
### Azure DevOps
329+
330+
```yaml
331+
- task: UseMSStoreCLI@0
332+
displayName: Setup Microsoft Store Developer CLI
333+
- script: msstore reconfigure --tenantId $(PARTNER_CENTER_TENANT_ID) --sellerId $(PARTNER_CENTER_SELLER_ID) --clientId $(PARTNER_CENTER_CLIENT_ID) --clientSecret $(PARTNER_CENTER_CLIENT_SECRET)
334+
displayName: Configure Microsoft Store Developer CLI
335+
```
336+
337+
### GitHub Actions
338+
339+
```yaml
340+
- name: Setup Microsoft Store Developer CLI
341+
uses: microsoft/[email protected]
342+
- name: Configure Microsoft Store Developer CLI
343+
run: msstore reconfigure --tenantId ${{ secrets.PARTNER_CENTER_TENANT_ID }} --sellerId ${{ secrets.PARTNER_CENTER_SELLER_ID }} --clientId ${{ secrets.PARTNER_CENTER_CLIENT_ID }} --clientSecret ${{ secrets.PARTNER_CENTER_CLIENT_SECRET }}
344+
```
345+
346+
Once this command is executed, the Microsoft Store Developer CLI (preview) will be configured to use the credentials provided. You can now use the Microsoft Store Developer CLI (preview) in your CI/CD pipeline.

0 commit comments

Comments
 (0)