Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
A CLI de Desenvolvimento de Aplicativos do Windows está atualmente em prévia pública. Recursos e comandos podem ser alterados antes da versão final.
Esta página documenta todos os comandos disponíveis para a CLI do winapp.
Opções globais
Todos os comandos dão suporte a estas opções globais:
| Opção | Descrição |
|---|---|
--verbose, -v |
Habilitar saída detalhada para registros precisos em log |
--quiet, -q |
Suprimir mensagens de progresso |
--help, -h |
Mostrar ajuda de comando |
Diretório de cache global
O WinApp cria um diretório para armazenar em cache arquivos que podem ser compartilhados entre vários projetos. Por padrão, ela é $UserProfile/.winapp.
Para usar um local diferente, defina a variável de WINAPP_CLI_CACHE_DIRECTORY ambiente:
$env:WINAPP_CLI_CACHE_DIRECTORY = "d:\temp\.winapp"
Comandos de instalação
Iniciar
Inicialize um diretório com o SDK do Windows, Windows App SDK e ativos necessários para o desenvolvimento moderno do Windows.
winapp init [base-directory] [options]
Argumentos:
| Argument | Descrição |
|---|---|
base-directory |
Diretório base/raiz para o aplicativo/workspace (padrão: diretório atual) |
Opções:
| Opção | Descrição |
|---|---|
--config-dir <path> |
Diretório para leitura/configuração do repositório (padrão: diretório atual) |
--setup-sdks |
Modo de instalação do SDK: stable (padrão), previewexperimentalounone |
--ignore-config, --no-config |
Não use o arquivo de configuração para o gerenciamento de versão |
--no-gitignore |
Não atualize o arquivo .gitignore |
--use-defaults, --no-prompt |
Não pedir e usar o padrão para todos os prompts |
--config-only |
Manipular somente operações de arquivo de configuração, ignorar a instalação do pacote |
O que faz:
- Cria um
winapp.yamlarquivo de configuração - Baixa pacotes do Windows SDK e do Windows App SDK
- Gera cabeçalhos e binários do C++/WinRT
- Cria AppxManifest.xml
- Configura ferramentas de build e habilita o modo de desenvolvedor
- Atualiza .gitignore para excluir arquivos gerados
Detecção automática de projeto .NET:
Quando um arquivo .csproj é encontrado no diretório de destino, init usa um fluxo simplificado .NET específico:
- Valida e atualiza o
TargetFrameworkpara um TFM compatível com o Windows (por exemplo,net10.0-windows10.0.26100.0) - Adiciona
Microsoft.WindowsAppSDKeMicrosoft.Windows.SDK.BuildToolscomo entradas do NuGetPackageReferencediretamente no.csproj - Gera
appxmanifest.xml, ativos e um certificado de desenvolvimento -
Não cria nem
winapp.yamlbaixa projeções do C++ (usedotnet restorepara pacotes NuGet)
Exemplos:
# Initialize current directory
winapp init
# Initialize with experimental packages
winapp init --setup-sdks experimental
# Initialize specific directory without prompts
winapp init ./my-project --use-defaults
# Initialize a .NET project (auto-detected from .csproj)
cd my-dotnet-app
winapp init
Dica
Se você executou init com --setup-sdks none e depois precisa dos SDKs, execute novamente winapp init --use-defaults --setup-sdks stable. Isso preserva os arquivos existentes (manifesto, etc.).
restauração
Restaurar pacotes e regenerar arquivos com base na configuração existente winapp.yaml .
winapp restore [options]
Opções:
| Opção | Descrição |
|---|---|
--config-dir <path> |
Diretório que contém winapp.yaml (padrão: diretório atual) |
O que faz:
- Lê a configuração existente
winapp.yaml - Baixar/atualizar pacotes do SDK para versões especificadas
- Regenera cabeçalhos e binários do C++/WinRT
Observação
Para projetos .NET inicializados com winapp init, não há winapp.yaml. Use o dotnet restore em vez disso para restaurar pacotes NuGet.
Exemplos:
# Restore from winapp.yaml in current directory
winapp restore
atualização
Atualize os pacotes para suas versões mais recentes e atualize o arquivo de configuração.
winapp update [options]
Opções:
| Opção | Descrição |
|---|---|
--config-dir <path> |
Diretório que contém winapp.yaml (padrão: diretório atual) |
--setup-sdks |
Modo de instalação do SDK: stable (padrão), previewexperimentalounone |
O que faz:
- Lê a configuração existente
winapp.yaml - Atualiza todos os pacotes para suas versões mais recentes disponíveis
- Atualiza o
winapp.yamlarquivo com novos números de versão - Regenera cabeçalhos e binários do C++/WinRT
Exemplos:
# Update packages to latest versions
winapp update
# Update including experimental packages
winapp update --setup-sdks experimental
Comandos de empacotamento
pacote
Crie pacotes MSIX com base em diretórios de aplicativos preparados. Requer que o arquivo appxmanifest.xml esteja presente no diretório de destino, no diretório atual ou passado com a opção --manifest.
winapp pack <input-folder> [options]
Argumentos:
| Argument | Descrição |
|---|---|
input-folder |
Diretório que contém os arquivos de aplicativo para empacotar |
Opções:
| Opção | Descrição |
|---|---|
--output <filename> |
Nome do arquivo MSIX de saída (padrão: <name>.msix) |
--name <name> |
Nome do pacote (padrão: do manifesto) |
--manifest <path> |
Caminho para AppxManifest.xml (padrão: detecção automática) |
--cert <path> |
Caminho para assinar o certificado (habilita a assinatura automática) |
--cert-password <password> |
Senha do certificado (padrão: "senha") |
--generate-cert |
Gerar um novo certificado de desenvolvimento |
--install-cert |
Instalar o certificado no computador |
--publisher <name> |
Nome do Editor para a geração de certificado |
--self-contained |
Tempo de execução do pacote Windows App SDK |
--skip-pri |
Ignorar a geração de arquivos PRI |
--executable <path> |
Caminho para o executável em relação à pasta de entrada. Usado para resolver $targetnametoken$ espaços reservados no manifesto. |
O que faz:
- Valida e processa arquivos AppxManifest.xml
- Resolve tokens
$placeholder$no manifesto (consulte espaços reservados do manifesto) - Garante dependências de estrutura adequadas
- Atualiza manifestos lado a lado com registros
- Gerencia a implantação autocontida do SDK de Aplicativos do Windows
- Assinar pacote se o certificado for fornecido
Exemplos:
# Package directory with auto-detected manifest
winapp pack ./dist
# Package with custom output name and certificate
winapp pack ./dist --output MyApp.msix --cert ./cert.pfx
# Package with generated and installed certificate and self-contained runtime
winapp pack ./dist --generate-cert --install-cert --self-contained
# Package with explicit executable
winapp pack ./dist --executable MyApp.exe
create-debug-identity
Crie a identidade do aplicativo para depuração sem a necessidade de empacotamento completo MSIX usando local externo/empacotamento esparso.
winapp create-debug-identity [entrypoint] [options]
Argumentos:
| Argument | Descrição |
|---|---|
entrypoint |
Caminho para executável (.exe) ou script que requer identificação |
Opções:
| Opção | Descrição |
|---|---|
--manifest <path> |
Caminho para AppxManifest.xml (padrão: ./appxmanifest.xml) |
--no-install |
Não instale o pacote após a criação |
--keep-identity |
Mantenha a identidade do manifesto as-is, sem acrescentar .debug ao nome do pacote e à ID do aplicativo |
O que faz:
- Modifica o manifesto de execução paralela do executável
- Registra o pacote esparso para identidade
- Habilita a depuração de APIs que exigem identidade
Exemplos:
# Add identity to executable using local manifest
winapp create-debug-identity ./bin/MyApp.exe
# Add identity with custom manifest location
winapp create-debug-identity ./dist/app.exe --manifest ./custom-manifest.xml
Comandos de manifesto
geração de manifesto
Gere AppxManifest.xml de modelos.
winapp manifest generate [directory] [options]
Argumentos:
| Argument | Descrição |
|---|---|
directory |
Diretório no qual gerar manifesto (padrão: diretório atual) |
Opções:
| Opção | Descrição |
|---|---|
--package-name <name> |
Nome do pacote (padrão: nome da pasta) |
--publisher-name <name> |
Publicador CN (padrão: CN=<current user>) |
--version <version> |
Versão (padrão: "1.0.0.0") |
--description <text> |
Descrição (padrão: "Meu Aplicativo") |
--entrypoint <path> |
Ponto de entrada: executável ou script |
--template <type> |
Tipo de modelo: packaged (padrão) ou sparse |
--logo-path <path> |
Caminho para o arquivo de imagem do logotipo |
--if-exists <Error\|Overwrite\|Skip> |
Comportamento se o arquivo já existir (padrão: Erro) |
Modelos:
-
packaged- Manifesto do aplicativo empacotado padrão -
sparse- Manifesto do aplicativo usando o empacotamento de localização esparso/externo
Marcadores de posição de manifesto
Os manifests gerados no momento do empacotamento usam tokens $placeholder$ (delimitados por cifrão) que são resolvidos automaticamente:
| Placeholder | Resolvido para | Exemplo |
|---|---|---|
$targetnametoken$ |
Nome executável sem extensão |
Executable="$targetnametoken$.exe" torna-se Executable="MyApp.exe" |
$targetentrypoint$ |
Windows.FullTrustApplication |
Sempre resolvido automaticamente |
Como os marcadores de posição são resolvidos:
-
winapp pack$targetnametoken$resolve usando a opção--executableou detectando automaticamente o único.exena pasta de entrada. -
winapp create-debug-identityresolve$targetnametoken$a partir do argumento de ponto de entrada quando fornecido. -
winapp manifest generate --executableextrai metadados do executável, mas mantém$targetnametoken$.exeno manifesto para resolução posterior.
Dica
Manter $targetnametoken$ no manifesto de check-in evita a codificação rígida de nomes de executáveis e funciona com compilações de winapp pack e do Visual Studio.
Exemplos:
# Generate standard manifest interactively
winapp manifest generate
# Generate with all options specified
winapp manifest generate ./src --package-name MyApp --publisher-name "CN=My Company" --if-exists overwrite
manifest atualizar-recursos
Gere todos os ativos de imagem MSIX necessários de uma única imagem de origem.
winapp manifest update-assets <image-path> [options]
Argumentos:
| Argument | Descrição |
|---|---|
image-path |
Caminho para o arquivo de imagem de origem (PNG, JPG, GIF etc.) |
Opções:
| Opção | Descrição |
|---|---|
--manifest <path> |
Caminho para AppxManifest.xml arquivo (padrão: pesquisar o diretório atual) |
Usa uma única imagem de origem e gera automaticamente todos os 12 ativos de imagem MSIX necessários nas dimensões corretas. Os ativos são salvos no diretório Assets relativo ao local do manifesto.
Exemplos:
# Generate assets with auto-detected manifest
winapp manifest update-assets mylogo.png
# Specify manifest location explicitly
winapp manifest update-assets mylogo.png --manifest ./dist/appxmanifest.xml
Comandos de certificado e assinatura
Gerar certificado
Gerar certificados de desenvolvimento para assinatura de pacote.
winapp cert generate [options]
Opções:
| Opção | Descrição |
|---|---|
--manifest <appxmanifest.xml> |
Extrair informação de publicador do appxmanifest.xml |
--publisher <name> |
Nome do emissor do certificado |
--output <path> |
Caminho do arquivo de certificado de saída |
--password <password> |
Senha do certificado (padrão: "senha") |
--valid-days <days> |
Número de dias em que o certificado é válido (padrão: 365) |
--install |
Instalar o certificado no repositório de máquinas local após a geração |
--if-exists <Error\|Overwrite\|Skip> |
Comportamento se o arquivo de certificado já existir (padrão: Erro) |
Instalação do certificado
Instale o certificado no repositório de certificados do computador.
winapp cert install <cert-path>
Argumentos:
| Argument | Descrição |
|---|---|
cert-path |
Caminho para o arquivo de certificado a ser instalado |
Exemplos:
# Generate certificate for specific publisher
winapp cert generate --publisher "CN=My Company" --output ./mycert.pfx
# Install certificate to machine
winapp cert install ./mycert.pfx
assinar
Assinar pacotes MSIX e executáveis com certificados.
winapp sign <file-path> [options]
Argumentos:
| Argument | Descrição |
|---|---|
file-path |
Caminho para o pacote MSIX ou o executável para assinar |
Opções:
| Opção | Descrição |
|---|---|
--cert <path> |
Caminho para assinar o certificado |
--cert-password <password> |
Senha do certificado (padrão: "senha") |
Exemplos:
# Sign MSIX package
winapp sign MyApp.msix --cert ./mycert.pfx
# Sign executable
winapp sign ./bin/MyApp.exe --cert ./mycert.pfx --cert-password mypassword
Comandos de utilidade
ferramenta
Acesso às ferramentas do SDK do Windows diretamente. Usa ferramentas disponíveis em Microsoft.Windows.SDK.BuildTools.
winapp tool <tool-name> [tool-arguments]
Ferramentas disponíveis:
-
makeappx– Criar e manipular pacotes de aplicativos -
signtool– Assinar arquivos e verificar assinaturas -
mt- Ferramenta de manifesto para conjuntos lado a lado - E outras ferramentas do SDK do Windows do Microsoft.Windows.SDK.BuildTools
Exemplos:
# Use signtool to verify signature
winapp tool signtool verify /pa MyApp.msix
armazenar
Execute um comando da CLI do Desenvolvedor da Microsoft Store. Este comando baixa a CLI de Desenvolvedor da Microsoft Store, se ainda não foi baixada. Saiba mais na CLI do Desenvolvedor da Microsoft Store.
winapp store [args...]
Argumentos:
| Argument | Descrição |
|---|---|
args... |
Argumentos a serem passados diretamente para a msstore CLI |
Exemplos:
# List all apps in your Microsoft Partner Center account
winapp store app list
# Publish a package to the Microsoft Store
winapp store publish ./myapp.msix --appId <your-app-id>
get-winapp-path
Obter caminhos para componentes do SDK do Windows instalados.
winapp get-winapp-path [options]
Retorna caminhos para o diretório do .winapp workspace, os diretórios de instalação de pacotes e os locais de cabeçalhos gerados.
comandos Node.js/Electron
Esses comandos estão disponíveis somente no pacote NPM.
node create-addon
Gere modelos de complementos nativos em C++ ou C# com integração do SDK do Windows e do Windows App SDK.
npx winapp node create-addon [options]
Opções:
| Opção | Descrição |
|---|---|
--name <name> |
Nome do complemento (padrão: "nativeWindowsAddon") |
--template |
Selecione o tipo de complemento: cs ou cpp (padrão: cpp) |
--verbose |
Habilitar saída detalhada |
O que faz:
- Cria o diretório de complemento com arquivos de modelo
- Gera arquivos binding.gyp e addon com exemplos do SDK do Windows
- Instala as dependências npm necessárias
- Adiciona o script de build ao arquivo package.json
Exemplos:
# Generate addon with default name
npx winapp node create-addon
# Generate custom named C# addon
npx winapp node create-addon --name myWindowsAddon --template cs
node add-electron-debug-identity
Adicione a identidade do aplicativo ao processo de desenvolvimento do Electron usando o empacotamento esparso. Requer um appxmanifest.xml (crie um com winapp init ou winapp manifest generate).
Importante
Há um problema conhecido com o empacotamento esparso de aplicativos Electron que faz com que o aplicativo falhe no início ou não renderize o conteúdo da Web. O problema foi corrigido no Windows, mas ainda não foi propagado para todos os dispositivos. Você pode desabilitar o sandboxing em seu aplicativo Electron com o --no-sandbox flag como uma solução alternativa. Esse problema não afeta o empacotamento MSIX completo.
Para desfazer a identidade de depuração do Electron, use winapp node clear-electron-debug-identity.
npx winapp node add-electron-debug-identity [options]
Opções:
| Opção | Descrição |
|---|---|
--manifest <path> |
Caminho para o appxmanifest.xml personalizado (padrão: appxmanifest.xml no diretório atual) |
--no-install |
Não instale nem modifique as dependências; apenas configure a identidade de depuração do Electron |
--keep-identity |
Manter a identidade do manifesto como está, sem acrescentar .debug |
--verbose |
Habilitar saída detalhada |
Exemplos:
# Add identity to Electron development process
npx winapp node add-electron-debug-identity
# Use a custom manifest file
npx winapp node add-electron-debug-identity --manifest ./custom/appxmanifest.xml
node clear-electron-debug-identity
Remova a identidade do pacote do processo de depuração no Electron, restaurando o arquivo original electron.exe do backup.
npx winapp node clear-electron-debug-identity [options]
Opções:
| Opção | Descrição |
|---|---|
--verbose |
Habilitar saída detalhada |
Exemplos:
# Remove identity from Electron development process
npx winapp node clear-electron-debug-identity
Tópicos relacionados
Windows developer