Instalação
Etapa 1: Instalar o .NET Windows Runtime
Caso ainda não tenha feito, instale a versão mais recente do .NET 8 Desktop Runtime. Esse é um requisito para executar a Developer CLI da Microsoft Store.
A maneira mais fácil de instalá-la é usar winget:
winget install Microsoft.DotNet.DesktopRuntime.8
Etapa 2: Instalar a CLI do desenvolvedor da Microsoft Store no Windows
Você pode baixar a Developer CLI da Microsoft Store da própria Microsoft Store. Como alternativa, você pode usar o winget:
winget install "Microsoft Store Developer CLI"
Etapa 1: Instalar o .NET macOS Runtime
Caso ainda não tenha feito, instale a versão mais recente do .NET 8 Runtime. Esse é um requisito para executar a Developer CLI da Microsoft Store.
Etapa 2: instalar a CLI do desenvolvedor da Microsoft Store no macOS
Você pode baixar o .tar.gz do macOS para sua arquitetura específica (x64 ou Arm64) na página de versões da Developer CLI da Microsoft Store. Uma vez baixado, extraia o arquivo e coloque-o em seu PATH, no entanto, você deseja fazer isso, por exemplo:
mkdir MSStoreCLI
curl https://github.com/microsoft/msstore-cli/releases/latest/download/MSStoreCLI-osx-x64.tar.gz -o MSStoreCLI-osx-x64.tar.gz
tar -xvf MSStoreCLI-osx-x64.tar.gz -C ./MSStoreCLI
sudo cp -R MSStoreCLI/. /usr/local/bin
Como alternativa, você pode usar brew:
brew install microsoft/msstore-cli/msstore-cli
Etapa 1: Instalar o .NET Linux Runtime
Caso ainda não tenha feito, instale a versão mais recente do .NET 8 Runtime. Esse é um requisito para executar a Developer CLI da Microsoft Store.
Etapa 2: Instalar a CLI do Desenvolvedor da Microsoft Store no Linux
Você pode baixar o .tar.gz do Linux para sua arquitetura específica (x64 ou Arm64) na página de versões da Developer CLI da Microsoft Store. Uma vez baixado, extraia o arquivo e coloque-o em seu PATH, no entanto, você deseja fazer isso, por exemplo:
mkdir MSStoreCLI
wget https://github.com/microsoft/msstore-cli/releases/latest/download/MSStoreCLI-linux-x64.tar.gz
tar -xvf MSStoreCLI-linux-x64.tar.gz -C ./MSStoreCLI
sudo cp -R MSStoreCLI/. /usr/local/bin
Como alternativa, você pode usar brew:
brew install microsoft/msstore-cli/msstore-cli
Comando Info
Imprima a configuração existente.
Usage
msstore info
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Reconfigure a CLI do Desenvolvedor da Microsoft Store. Você pode fornecer um Segredo do Cliente ou um Certificado. Os certificados podem ser fornecidos por meio de sua impressão digital ou fornecendo um caminho de arquivo (com ou sem senha).
Usage
msstore reconfigure
Opções
| Opção |
Descrição |
| -t, --tenantId (ID do locatário) |
Especifique a ID do locatário que deve ser usada. |
| -s, --IdDoVendedor |
Especifique a ID do vendedor que deve ser usada. |
| -c, --identificadorDoCliente |
Especifique a ID do cliente que deve ser usada. |
| -cs, --segredoDoCliente |
Especifique o segredo do cliente que deve ser usado. |
| -ct, --certificateImpressão digital |
Especifique a impressão digital do certificado que deve ser usada. |
| -cfp, --certificateFilePath |
Especifique o caminho do arquivo de certificado que deve ser usado. |
| -cp, --certificatePassword |
Especifique a senha do certificado que deve ser usada. |
| --repor |
Apenas redefina as credenciais, sem começar de novo. |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Comando de configurações
Altere as configurações da CLI do Desenvolvedor da Microsoft Store.
Usage
msstore settings
Opções
| Opção |
Descrição |
| -t, --enableTelemetry (habilitar telemetria) |
Habilitar (vazio/verdadeiro) ou Desabilitar (falso) telemetria. |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Comando secundário SetPDN
Defina a propriedade Nome de Exibição do Publicador que é usada pelo comando init.
Usage
msstore settings setpdn <publisherDisplayName>
Argumentos
| Argumento |
Descrição |
publisherDisplayName |
A propriedade Nome de Exibição do Publicador que será definida globalmente. |
Opções
| Opção |
Descrição |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Comando Apps
| Subcomando |
Descrição |
|
lista |
Lista todos os aplicativos em sua conta. |
|
Obter |
Obtém os detalhes de um aplicativo específico. |
Aplicativos – Lista – Uso
msstore apps list
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Aplicativos – Baixar – Utilização
msstore apps get <productId>
Argumentos
| Argumento |
Descrição |
productId |
O ID do produto da loja. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Comando Submission
| Subcomando |
Descrição |
|
estado |
Obtém o status de um envio. |
|
Obter |
Obtém os metadados e as informações do pacote de um envio específico. |
|
getListingAssets |
Obtém os ativos de listagem de um envio específico. |
|
atualizarMetadados |
Atualiza os metadados de um envio específico. |
|
pesquisa |
Sonda o status de um envio. |
|
publicar |
Publica uma submissão específica. |
|
excluir |
Exclui um envio específico. |
Envio – Status – Uso
msstore submission status <productId>
Argumentos
| Argumento |
Descrição |
productId |
O ID do produto da loja. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Envio – Obter – Uso
msstore submission get <productId>
Argumentos
| Argumento |
Descrição |
productId |
O ID do produto da loja. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Envio – GetListingAssets – Uso
msstore submission getListingAssets <productId>
Argumentos
| Argumento |
Descrição |
productId |
O ID do produto da loja. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
msstore submission updateMetadata <productId> <metadata>
Argumentos
| Argumento |
Descrição |
productId |
O ID do produto da loja. |
metadata |
A representação de metadados JSON atualizada. |
Opções
| Opção |
Descrição |
| -s, --skipInitialPolling (ignorar a sondagem inicial) |
Ignore a sondagem inicial antes de executar a ação. [padrão: Falso] |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Envio – Votação – Uso
msstore submission poll <productId>
Argumentos
| Argumento |
Descrição |
productId |
O ID do produto da loja. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Envio – Publicar – Uso
msstore submission publish <productId>
Argumentos
| Argumento |
Descrição |
productId |
O ID do produto da loja. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Envio – Excluir – Uso
msstore submission delete <productId>
Argumentos
| Argumento |
Descrição |
productId |
O ID do produto da loja. |
Opções
| Opção |
Descrição |
| --não-confirmar |
Não solicite confirmação. [padrão: Falso] |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Comando Init
O init comando ajuda você a configurar seu aplicativo para publicar na Microsoft Store. Atualmente, ele suporta os seguintes tipos de aplicativos:
- SDK do Aplicativo Windows/WinUI 3
- UWP
- .NET MAUI
- Tremulação
- Elétron
- React Native para desktop
- PWA
Exemplos de uso
SDK do Aplicativo Windows/WinUI 3
msstore init "C:\path\to\winui3_app"
UWP
msstore init "C:\path\to\uwp_app"
.NET MAUI
msstore init "C:\path\to\maui_app"
Tremulação
msstore init "C:\path\to\flutter_app"
Elétron
msstore init "C:\path\to\electron_app"
React Native para desktop
msstore init "C:\path\to\react_native_app"
Observação
Para projetos Electron, bem como React Native para Desktop, ambos NpmYarn são suportados. A presença do Yarn arquivo de bloqueio (yarn.lock) será usada para determinar qual gerenciador de pacotes usar, portanto, certifique-se de fazer check-in do arquivo de bloqueio no sistema de controle do código-fonte.
PWA
msstore init https://contoso.com --output .
Argumentos
| Argumento |
Descrição |
pathOrUrl |
O caminho do diretório raiz onde está o arquivo do projeto ou uma URL pública que aponta para um PWA. |
Opções
| Opção |
Descrição |
| -n, --publisherDisplayName (nomeExibidoDoPublicador) |
O Nome de Exibição do Publicador usado para configurar o aplicativo. Se fornecido, evita uma chamada extra de APIs. |
| --pacote |
Se compatível com o tipo de aplicativo, empacota automaticamente o projeto. |
| --publicar |
Se houver suporte no tipo de aplicativo, publicará automaticamente o projeto. Implica '--package true' |
| -f, --flightId |
Especifica a ID de Voo em que o pacote será publicado. |
| -prp, --porcentagemDeLiberacaoDePacotes |
Especifica a porcentagem de distribuição do pacote. O valor precisa estar entre 0 e 100. |
| -a, --arch |
A(s) arquitetura(s) para a qual construir. Se não for fornecido, a arquitetura padrão para o sistema operacional atual e o tipo de projeto serão usados. Valores permitidos: "x86", "x64", "arm64". Usei apenas em conjunto com '--package true'. |
| -o, --saída |
O diretório de saída em que o aplicativo empacotado será armazenado. Se não for fornecido, o diretório padrão para cada tipo diferente de aplicativo será usado. |
| -ver, --versão |
A versão usada ao criar o aplicativo. Se não for fornecida, a versão do arquivo de projeto será usada. |
Comando Package
Ajuda você a empacotar seu aplicativo da Microsoft Store como um MSIX.
Exemplos de uso
SDK do Aplicativo Windows/WinUI 3
msstore package "C:\path\to\winui3_app"
UWP
msstore package "C:\path\to\uwp_app"
.NET MAUI
msstore package "C:\path\to\maui_app"
Tremulação
msstore package "C:\path\to\flutter_app"
Elétron
msstore package "C:\path\to\electron_app"
React Native para desktop
msstore package "C:\path\to\react_native_app"
PWA
msstore package "C:\path\to\pwa_app"
Argumentos
| Opção |
Descrição |
pathOrUrl |
O caminho do diretório raiz onde está o arquivo do projeto ou uma URL pública que aponta para um PWA. |
Opções
| Opção |
Descrição |
| -o, --saída |
O diretório de saída em que o aplicativo empacotado será armazenado. Se não for fornecido, o diretório padrão para cada tipo diferente de aplicativo será usado. |
| -a, --arch |
A(s) arquitetura(s) para a qual construir. Se não for fornecido, a arquitetura padrão para o sistema operacional atual e o tipo de projeto serão usados. Valores permitidos: "x86", "x64", "arm64". |
| -ver, --versão |
A versão usada ao criar o aplicativo. Se não for fornecida, a versão do arquivo de projeto será usada. |
Comando Publish
Publica sua Aplicação na Microsoft Store.
Exemplos de uso
SDK do Aplicativo Windows/WinUI 3
msstore publish "C:\path\to\winui3_app"
UWP
msstore publish "C:\path\to\uwp_app"
.NET MAUI
msstore publish "C:\path\to\maui_app"
Tremulação
msstore publish "C:\path\to\flutter_app"
Elétron
msstore publish "C:\path\to\electron_app"
React Native para desktop
msstore publish "C:\path\to\react_native_app"
PWA
msstore publish "C:\path\to\pwa_app"
Argumentos
| Opção |
Descrição |
pathOrUrl |
O caminho do diretório raiz onde está o arquivo do projeto ou uma URL pública que aponta para um PWA. |
Opções
| Opção |
Descrição |
| -i, --arquivoEntrada |
O caminho para o arquivo '.msix' ou '.msixupload' que deve ser usado para o comando de publicação. Se não for fornecido, o cli tentará encontrar o melhor candidato com base no argumento 'pathOrUrl'. |
| -id, --appId |
Especifica o ID do aplicativo. Necessário somente se o projeto não tiver sido inicializado antes com o comando "init". |
| -nc, --noCommit |
Desabilita a confirmação do envio, mantendo-o no estado de rascunho. |
| -f, --flightId (identificador de voo) |
Especifica a ID de Voo em que o pacote será publicado. |
| -prp, --percentualDeImplantacaoDePacote |
Especifica a porcentagem de distribuição do pacote. O valor precisa estar entre 0 e 100. |
Comando de Voos
| Subcomando |
Descrição |
|
lista |
Recupera todos os voos para o aplicativo especificado. |
|
Obter |
Recupera um voo para a Aplicação e o voo especificados. |
|
excluir |
Exclui um voo para o aplicativo e o voo especificados. |
|
create |
Cria um voo para o aplicativo e voo especificados. |
|
submissão |
Execute tarefas relacionadas a envios de voos. |
Voos – Lista – Uso
msstore flights list <productId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Obter – Uso
msstore flights get <productId> <flightId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
O ID do voo. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Excluir – Uso
msstore flights delete <productId> <flightId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
A identificação do voo. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Criar – Utilização
msstore flights create <productId> <friendlyName> --group-ids <group-ids>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
friendlyName |
O nome amigável do voo. |
Opções
| Opção |
Descrição |
| -g, --group-ids (identificadores de grupo) |
As IDs do grupo a serem associadas ao voo. |
| -r, --rank-higher-than |
O identificador de voo para ser classificado mais alto que outro. |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Envio
| Subcomando |
Descrição |
|
Obter |
Recupera a submissão do pacote de teste existente, seja o rascunho atual ou a última versão publicada. |
|
excluir |
Exclui a submissão de voo de pacote pendente da loja. |
|
atualizar |
Atualiza o rascunho de voo existente com o JSON fornecido. |
|
publicar |
Inicia o processo de submissão para o Rascunho existente. |
|
pesquisa |
Continua verificando até que a submissão de voo existente seja PUBLICADA ou FALHE. |
|
estado |
Recupera o status atual do envio de pré-lançamento da loja. |
|
Implantação |
Execute operações relacionadas ao lançamento de voo. |
Voos – Envio – Obter – Uso
msstore flights submission get <productId> <flightId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
O ID do voo. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Envio – Exclusão – Uso
msstore flights submission delete <productId> <flightId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
O ID do voo. |
Opções
| Opção |
Descrição |
| --não-confirmar |
Não solicite confirmação. |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Envio – Atualização – Uso
msstore flights submission update <productId> <flightId> <product>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
O código do voo. |
product |
A representação de produto JSON atualizada. |
Opções
| Opção |
Descrição |
| -s, --skipInitialPolling (ignorar a sondagem inicial) |
Ignore a sondagem inicial antes de executar a ação. [padrão: Falso] |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Submissão – Publicação – Uso
msstore flights publish <productId> <flightId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
O identificador do voo. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Envio – Sondagem – Uso
msstore flights poll <productId> <flightId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
A identificação do voo. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Envio – Status – Uso
msstore flights status <productId> <flightId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
A identificação do voo. |
Opções
| Opção |
Descrição |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Envio – Distribuição
| Subcomando |
Descrição |
|
Obter |
Recupera o status de distribuição de pré-lançamento de um envio. |
|
atualizar |
Atualize o percentual de distribuição de pré-lançamento de um envio. |
|
Parar |
Interrompe a distribuição de voo de um envio. |
|
Finalizar |
Finaliza o lançamento de uma submissão. |
Voos – Envio – Implementação – Obtenção – Uso
msstore flights submission rollout get <productId> <flightId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
A identificação do voo. |
Opções
| Opção |
Descrição |
| -s, --submissionId |
O ID de submissão. |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Envio – Distribuição – Atualização – Uso
msstore flights submission rollout update <productId> <flightId> <percentage>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
A identificação do voo. |
percentage |
O percentual de usuários que receberão a implementação da submissão. |
Opções
| Opção |
Descrição |
| -s, --submissionId |
O ID de submissão. |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Envio – Distribuição – Parada – Uso
msstore flights submission rollout halt <productId> <flightId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
O ID do voo. |
Opções
| Opção |
Descrição |
| -s, --submissionId (Identificador de envio) |
O ID de envio. |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Voos – Envio – Distribuição – Finalizar – Uso
msstore flights submission rollout finalize <productId> <flightId>
Argumentos
| Argumento |
Descrição |
productId |
A ID do produto. |
flightId |
A identificação do voo. |
Opções
| Opção |
Descrição |
| -s, --submissionId |
O ID de submissão. |
| -v, --detalhado |
Imprima a saída detalhada. |
| -?, -h, --help (ajuda) |
Mostrar informações de ajuda e uso. |
Ambientes de CI/CD
A CLI do Desenvolvedor da Microsoft Store (versão prévia) dá suporte à execução em ambientes de CI/CD. Isso significa que você pode usar a CLI do Desenvolvedor da Microsoft Store (versão prévia) em seus pipelines de CI/CD para, por exemplo, publicar automaticamente seus aplicativos na Microsoft Store.
A primeira etapa para conseguir isso é instalar a CLI do desenvolvedor da Microsoft Store (versão prévia) em seu ambiente de CI/CD. Você pode encontrar instruções sobre como fazer isso aqui.
Depois de instalar a CLI do Desenvolvedor da Microsoft Store (versão prévia), você precisa configurar seu ambiente para poder executar comandos. Você pode fazer isso executando o msstore reconfigure comando com os parâmetros específicos que identificam sua conta do Partner Center (TenantId, SellerId, ClientId). Você também precisa fornecer um ClientSecret ou um Certificate.
É muito importante ocultar essas credenciais, pois elas ficarão visíveis nos logs do seu pipeline de CI/CD. Você pode fazer isso usando segredos. Cada sistema de pipeline de CI/CD tem nomes diferentes para esses segredos. Por exemplo, o Azure DevOps as chama de Variáveis Secretas, mas o GitHub Action as chama de Segredos Criptografados. Crie um segredo para cada um dos parâmetros (TenantId, SellerId, ClientId e ClientSecret ou um Certificado) e use o reconfigure comando para configurar seu ambiente.
Por exemplo:
Azure DevOps
- task: UseMSStoreCLI@0
displayName: Setup Microsoft Store Developer CLI
- script: msstore reconfigure --tenantId $(PARTNER_CENTER_TENANT_ID) --sellerId $(PARTNER_CENTER_SELLER_ID) --clientId $(PARTNER_CENTER_CLIENT_ID) --clientSecret $(PARTNER_CENTER_CLIENT_SECRET)
displayName: Configure Microsoft Store Developer CLI
GitHub Actions
- name: Setup Microsoft Store Developer CLI
uses: microsoft/microsoft-store-apppublisher@v1.1
- name: Configure Microsoft Store Developer CLI
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 }}
Depois que esse comando for executado, a CLI do Desenvolvedor da Microsoft Store (versão prévia) será configurada para usar as credenciais fornecidas. Agora você pode usar a CLI do Desenvolvedor da Microsoft Store (versão prévia) em seu pipeline de CI/CD.