Partilhar via


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

Se o WinGet não parecer estar instalado corretamente, siga estas etapas em um prompt de comando 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 os comandos do WinGet estão falhando, às vezes é 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

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.

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 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 se há uma cadeia de caracteres do agente do usuário incluída na solicitação de download para identificar o dispositivo ou cliente (por exemplo, navegador, WinGet). Se você puder baixar o instalador usando seu navegador, mas encontrar problemas com o WinGet, é possível que o ISV tenha bloqueado a cadeia de caracteres do agente do usuário do WinGet.

A cadeia de caracteres do agente do usuário para 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