WinGet aracıyla ilgili hata ayıklama ve sorunları giderme

WinGet doğru yüklenmemiş gibi görünüyorsa, PowerShell komut isteminden şu adımları izleyin:

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

WinGet komutları başarısız olduğunda, bazen davranışı daha iyi anlamak için günlük dosyalarına bakmak gerekir.

WinGet Günlükleri

Windows Paket Yöneticisi, komutları yürütürken varsayılan olarak günlük dosyaları oluşturur. Bu günlükler WinGet ile ilgili hata ayıklama sorunlarına yardımcı olabilecek bilgiler içerir. Günlük dosyası temizleme davranışı, settings dosyanızdaki günlükleme settings ile yapılandırılabilir. Varsayılan olarak, 7 günden eski veya toplam 128 MB'ı aşan günlük dosyaları otomatik olarak kaldırılır ve tek tek günlük dosyaları 16 MB'a kaydırılır. Bu sınırları ayarlamak için öğesini logging.filesettings kullanın.

WinGet günlük dosyalarınızın dizin yolunu bulmak için komutunu winget --info kullanın. WinGet günlük dosyalarının varsayılan yolu:

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

Komut tamamlandıktan sonra günlükler dizinini açmak için herhangi bir komuta --logs veya --open-logs seçeneğini ekleyebilirsiniz. Seçeneğini kullanmanın bazı örnekleri aşağıda verilmiştir --logs :

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

--verbose-logs

CdN'ler ve kaynaklar ile tam iletişimi sağlayan daha kapsamlı günlük dosyalarına ihtiyacınız varsa, --verbose komut satırına da ekleyin veya --verbose-logs ekleyin. Seçeneğini kullanmanın bazı örnekleri aşağıda verilmiştir --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

settings

WinGet'in kullanması için varsayılan günlük düzeyini WinGet Ayarları dosyanızda belirtebilirsiniz. settings komutu, settings.json dosyasını varsayılan JSON düzenleyicinizde açar.

Bir detaylı günlük kaydı örneği:

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

Bilinen sorunlar

list Kaynaklar ve davranışlarla ilgili bilinen sorunlardan biri, Windows Paket Yöneticisi İstemci deposunda güncel tutulur. WinGet aracını kullanırken sorunlarla karşılaşırsanız sorun giderme için buraya gidin.

Çıkış kodları

WinGet aracı, komutun başarılı veya başarısız olduğunu göstermek için çıkış kodlarını döndürür. Windows Paket Yöneticisi İstemci deposunun "Dönüş kodları" dosyasında çıkış kodları ve anlamlarından oluşan bir tablo bulun.

WinGet hata komutu "Çıkış kodları" hatalarını kabul eder ve WinGet, MSIX ve MSI yükleyicileri için bilinen hata kodları için bir açıklama görüntüler. .exetabanlı yükleyicilerin çoğunda standart olmayan hata kodları vardır ve görüntülenmeyebilir.

> winget error 1603

Belirli bir kullanıcı veya makine genelinde kapsam

Tüm yükleyiciler "kullanıcı" kapsamına ve "makine" kapsamına tutarlı bir şekilde yüklemeyi desteklemez.

  • MSIX tabanlı paketler: Güvenilir WinGet davranışı.
  • MSI tabanlı paketler genellikle güvenilir WinGet yapılandırmalarını destekler, ancak bazı durumlarda .exetabanlı bir yükleyici içinde iç içe yerleştirilmiştir, bu nedenle daha fazla değişkenlik olabilir.
  • EXE tabanlı yükleyicilerin kapsam etrafındaki davranışı belirlenebilir olmayabilir. Bazı durumlarda kapsamı belirtmek için bağımsız değişkenler kullanılamaz ve diğer durumlarda yükleyici, kullanıcının yerel yöneticiler grubunun üyesi olup olmadığına bağlı olarak belirlemeyi yapabilir. Kullanıcı kapsamında yüklenen paketler yine de yöneticiden UAC (Kullanıcı Hesabı Denetimi) yetkilendirmesi gerektirebilir.

kapsamında ile ilgili sorunlar hakkında daha fazla ayrıntıya GitHub'daki WinGet ürün deposundan bakın.

403 Yasak hatası

WinGet aracını kullanarak bir paketi indirmeye çalışırken 403 Yasak hatası oluşabilir. Bağımsız Yazılım Satıcısı (ISV) ürününün WinGet gibi bir paket yöneticisi hizmeti tarafından dağıtılmaması durumunda bu sorun ortaya çıkabilir.

İndirmeyi başlatmakla sorumlu sunucu genellikle cihazı veya istemciyi (tarayıcı, WinGet gibi) tanımlamak için indirme isteğine dahil olan bir kullanıcı aracısı dizesini denetler. Yükleyiciyi tarayıcınızı kullanarak indirebilir, ancak WinGet ile ilgili sorunlarla karşılaşırsanız, ISV WinGet kullanıcı aracısı dizesini engellemiş olabilir.

WinGet için kullanıcı aracısı dizesi aşağıdaki biçime sahiptir:

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

Örnek:

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

Sistem Bağlamı

WinGet, Uygulama Yükleyicisi aracılığıyla paketlenmiş bir uygulama olarak teslim edilir. MSIX (paketlenmiş) uygulamaları, kullanıcı için kaydedilen pakete bağlıdır. Paketler NT AUTHORITY\SYSTEM (Diğer adıyla LocalSystem, diğer adıyla System) dışında herhangi bir kullanıcı için kaydedileebildiği için WinGet CLI sistem bağlamında desteklenmez. Microsoft.WinGet.Client PowerShell modülü, makine genelinde yüklü uygulamalarla sistem bağlamında kullanılabilir.