Compartilhar via


Depuração e solução de problemas com a ferramenta WinGet

Se o WinGet não parecer estar instalado corretamente, siga estas etapas a partir de um prompt do PowerShell:

Install-PackageProvider -Name NuGet -Force | Out-Null
Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery | Out-Null
Repair-WinGetPackageManager -Force -Latest

Quando houver falhar nos comandos do WinGet, poderá ser necessário examinar os arquivos de log para entender melhor o comportamento.

Logs do WinGet

Por padrão, o Gerenciador de Pacotes do Windows cria arquivos de log ao executar comandos. Esses logs contêm informações que podem ajudar na depuração de problemas com o WinGet. Não existe tamanho máximo para os arquivos de log. Normalmente, eles têm apenas alguns KBs. Quando o número de arquivos de log no diretório exceder 100, os arquivos de log mais antigos começarão a ser excluídos. Não há remoção de logs baseada em tempo, e essas configurações não podem ser definidas. Se você atingiu a capacidade de log de 100 arquivos, basta mover todos os logs do WinGet que deseja preservar para outro diretório.

Use o comando winget --info para encontrar o caminho do diretório para seus arquivos de log do WinGet. O caminho padrão dos arquivos de log do WinGet é:

%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

Você pode incluir a opção --logs ou --open-logs em qualquer comando para abrir o diretório de logs após a conclusão do comando. Aqui estão alguns exemplos de uso da opção --logs:

> winget list --logs
> winget source update --open-logs

--verbose-logs

Se você precisar de arquivos de log mais abrangentes, que forneçam a comunicação completa com os CDNs e as fontes, inclua --verbose ou --verbose-logs na linha de comando também. Estes são alguns exemplos de como usar a opção --verbose-logs:

> winget install vscode --verbose-logs
> winget search -n visual --verbose-logs
> winget source add -n mysource -t Microsoft.REST -a https://www.contoso.org --verbose

configurações

Você pode especificar o nível de log padrão para o WinGet usar em seu arquivo de Configurações do WinGet. O comando de configurações abrirá o arquivo settings.json no editor JSON padrão.

Exemplo com log detalhado:

{
    "$schema": "https://aka.ms/winget-settings.schema.json",
    "logging": {
        "level": "verbose"
    }
}

Problemas conhecidos

Uma lista de problemas conhecidos com as fontes e os comportamentos é mantida atualizada no repositório do Cliente do Gerenciador de Pacotes do Windows. Se encontrar problemas ao usar a ferramenta WinGet, acesse aqui para solucioná-los.

Códigos de saída

A ferramenta WinGet retorna códigos de saída para indicar o sucesso ou falha do comando. Encontre uma tabela de códigos de saída e seus significados no arquivo "Códigos de retorno" do repositório do Cliente do Gerenciador de Pacotes do Windows.

O comando error do WinGet aceita erros de "códigos de saída" e exibe uma descrição para códigos de erro conhecidos dos instaladores WinGet, MSIX e MSI. Muitos instaladores baseados em .exetêm códigos de erro não padrão e podem não ser exibidos.

> winget error 1603

Escopo para usuário específico versus todo o computador

Nem todos os instaladores dão suporte à instalação no escopo "usuário" versus "computador" de maneira consistente.

  • Pacotes baseados em MSIX: comportamento do WinGet confiável.
  • Os pacotes baseados em MSI normalmente dão suporte a configurações confiáveis do WinGet, mas, em alguns casos, são aninhados dentro de um instalador baseado em .exe. Portanto, pode haver mais variabilidade.
  • O comportamento de instaladores baseados em EXE em torno do escopo não é necessariamente determinístico. Em alguns casos, os argumentos para especificar o escopo não estão disponíveis e, em outros casos, o instalador pode fazer a determinação com base em se o usuário é membro do grupo de administradores locais. Os pacotes instalados no escopo do usuário ainda podem exigir autorização do UAC (Controle de Conta de Usuário) de um administrador.

Confira mais detalhes sobre problemas relacionados ao escopo no repositório de produtos WinGet no GitHub.

Erro 403 Proibido

Um erro 403 Forbidden pode ocorrer ao tentar baixar um pacote usando a ferramenta do WinGet. Esse problema pode surgir se um ISV (Fornecedor Independente de Software) optar por não ter seu produto distribuído por um serviço de gerenciamento de pacotes como o WinGet.

O servidor responsável por iniciar o download normalmente verifica uma cadeia de caracteres de agente de usuário incluída na solicitação de download para identificar o dispositivo ou o cliente (por exemplo, navegador, WinGet). Se você conseguir baixar o instalador pelo navegador, mas encontrar problemas com o WinGet, é possível que o ISV tenha bloqueado a string de agente de usuário do WinGet.

A string do agente de usuário para o WinGet tem o seguinte formato:

winget-cli WindowsPackageManager/{Client Version} DesktopAppInstaller/Microsoft.DesktopAppInstaller {AppInstaller Version}

Exemplo:

winget-cli WindowsPackageManager/1.9.25200 DesktopAppInstaller/Microsoft.DesktopAppInstaller v1.24.25200.0

Contexto do sistema

O WinGet é entregue por meio do Instalador de Aplicativos como um aplicativo empacotado. Os aplicativos MSIX (empacotados) dependem de um Alias de Execução de Aplicativo a ser resolvido na variável de ambiente PATH. Não há suporte para a CLI do WinGet no contexto do sistema. O módulo PowerShell Microsoft.WinGet.Client pode ser usado no contexto do sistema com aplicativos instalados em todo o computador.