|
| 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 | + |
| 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