WinGet 도구의 디버깅 및 문제 해결
WinGet이 제대로 설치되지 않은 경우 PowerShell 명령 프롬프트에서 다음 단계를 수행합니다.
Install-PackageProvider -Name NuGet -Force | Out-Null
Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery | Out-Null
Repair-WinGetPackageManager -Force -Latest
WinGet 명령이 실패하는 경우 동작을 더 잘 이해하기 위해 로그 파일을 확인해야 하는 경우도 있습니다.
WinGet 로그
Windows 패키지 관리자는 기본적으로 명령을 실행할 때 로그 파일을 만듭니다. 이러한 로그에는 WinGet 문제 디버깅에 도움이 될 수 있는 정보가 포함되어 있습니다. 로그 파일의 최대 크기는 없습니다. 일반적으로 크기는 몇 KB에 불과합니다. 디렉터리의 로그 파일 수가 100개를 초과하면 가장 오래된 로그 파일이 삭제되기 시작합니다. 시간 기반의 로그 제거는 없으며 이러한 설정은 구성할 수 없습니다. 파일 로그 용량이 100개에 도달한 경우 보존하려는 WinGet 로그를 다른 디렉터리로 이동하면 됩니다.
WinGet 로그 파일의 디렉터리 경로를 찾으려면 winget --info
명령을 사용합니다. WinGet 로그 파일의 기본 경로는 다음과 같습니다.
%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
명령이 완료된 후 로그 디렉터리를 열려면 명령에 --logs 또는 --open-logs 옵션을 포함할 수 있습니다. 다음은 --logs 옵션 사용에 대한 몇 가지 예입니다.
> winget list --logs
> winget source update --open-logs
--verbose-logs
CDN 및 원본과의 완전한 통신을 제공하는 더 포괄적인 로그 파일이 필요한 경우 --verbose 또는 --verbose-logs도 명령줄에 포함합니다. --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
알려진 문제점
원본 및 동작과 관련된 알려진 문제의 목록은 Windows 패키지 관리자 클라이언트 리포지토리에서 최신 상태로 유지됩니다. WinGet 도구를 사용할 때 문제가 발생하는 경우 여기로 이동하여 문제를 해결하세요.
종료 코드
WinGet 도구는 명령의 성공 또는 실패를 나타내는 종료 코드를 반환합니다. Windows 패키지 관리자 클라이언트 리포지토리의 "반환 코드" 파일에서 종료 코드 표와 그 의미를 찾아보세요.
특정 사용자의 범위와 컴퓨터 전체의 범위
모든 설치 프로그램이 "사용자" 범위와 "컴퓨터" 범위의 설치를 일관되게 지원하는 것은 아닙니다.
- MSIX 기반 패키지: 신뢰할 수 있는 WinGet 동작.
- MSI 기반 패키지는 일반적으로 신뢰할 수 있는 WinGet 구성을 지원하지만 경우에 따라 .exe 기반 설치 프로그램 내에 중첩되어 있으므로 변동성이 더 커질 수 있습니다.
- 범위에 따른 EXE 기반 설치 프로그램 동작이 반드시 결정적일 필요는 없습니다. 범위를 지정하는 인수를 사용할 수 없는 경우도 있고, 사용자가 로컬 관리자 그룹의 멤버인지 여부에 따라 설치 프로그램에서 결정을 내릴 수도 있습니다. 사용자 범위에 설치된 패키지에는 여전히 관리자의 UAC(사용자 계정 컨트롤) 권한 부여가 필요할 수 있습니다.
GitHub의 WinGet 제품 리포지토리에서 범위 관련 문제에 대한 자세한 내용을 확인합니다.
403 사용할 수 없음 오류
WinGet 도구를 사용하여 패키지를 다운로드하려고 할 때 403 사용할 수 없음 오류가 발생할 수 있습니다. ISV(Independent Software Vendor)가 WinGet과 같은 패키지 관리자 서비스에서 제품을 배포하지 않는 경우 이 문제가 발생할 수 있습니다.
다운로드를 시작하는 데 사용할 수 있는 서버는 일반적으로 다운로드 요청에 포함된 사용자 에이전트 문자열을 확인하여 디바이스 또는 클라이언트(예: 브라우저, WinGet)를 식별합니다. 브라우저를 사용하여 설치 관리자를 다운로드할 수 있지만 WinGet에 문제가 발생하는 경우 ISV가 WinGet 사용자 에이전트 문자열을 차단했을 수 있습니다.
WinGet의 사용자 에이전트 문자열 형식은 다음과 같습니다.
winget-cli WindowsPackageManager/{Client Version} DesktopAppInstaller/Microsoft.DesktopAppInstaller {AppInstaller Version}
예시:
winget-cli WindowsPackageManager/1.9.25200 DesktopAppInstaller/Microsoft.DesktopAppInstaller v1.24.25200.0
Windows developer