Releases
发布时间:2026-08-21 | 浏览:1
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Notifications You must be signed in to change notification settings
Windows Package Manager 1.30.100-preview
Windows Package Manager 1.30.90-preview
Windows Package Manager 1.30.80-preview
Windows Package Manager 1.30.70-preview
Windows Package Manager 1.30.50-preview
Windows Package Manager 1.29.280
Windows Package Manager 1.29.250
Windows Package Manager 1.29.240
Windows Package Manager 1.29.170-preview
Windows Package Manager 1.29.160-preview
Windows Package Manager 1.30.100-preview
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
No results found
This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by filing an issue .
--ignore-unavailable flag for install
Added a new --ignore-unavailable flag to the install command. When installing multiple packages, this flag allows the operation to continue with the remaining packages instead of failing entirely when one or more packages are not found in the configured sources. This brings the same behavior previously available with import --ignore-unavailable to direct multi-package installs.
Updated NUnit to v4
Fixed a crash ( 0x8000ffff ) when using --disable-interactivity with the Resume experimental feature enabled during install operations.
Use PowerShell 5 to create vcpkg port overlay by Tom Plant (@pl4nty) in #6272
Update to use build agents with VS 2026 by Flor Chacón (@florelis) in #6383
Replace genai dedup action with agentic duplicate-surfacing workflow by Demitrius Nelon (@denelon) in #6400
Disable no-op run reporting for Duplicate Surfacing workflow by Demitrius Nelon (@denelon) in #6408
Improve duplicate-surfacing search recall (in:title + high-recall queries) by Demitrius Nelon (@denelon) in #6410
Make template string H6 by Kaleb Luedtke (@Trenly) in #6413
feat: add --ignore-unavailable option to install command by CatBraaain in #6351
Clean up Duplicate Surfacing comment noise ( #6412 ) by Demitrius Nelon (@denelon) in #6414
New Contributors
CatBraaain made their first contribution in #6351
Full Changelog : v1.30.90-preview...v1.30.100-preview
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Windows Package Manager 1.30.90-preview
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
No results found
This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by filing an issue .
Updated NUnit to v4
Fixed a crash ( 0x8000ffff ) when using --disable-interactivity with the Resume experimental feature enabled during install operations.
Bubble up child process errors in IndexCreationTool by Tom Plant (@pl4nty) in #6261
Bump brace-expansion and @vscode/vsce in /tools/WinGetLogViewer by Dependabot (@dependabot) [bot] in #6380
Bump manifest version to 1.30 by Kaleb Luedtke (@Trenly) in #6379
Bump linkify-it from 5.0.1 to 5.0.2 in /tools/WinGetLogViewer by Dependabot (@dependabot) [bot] in #6384
Bump fast-uri from 3.1.2 to 3.1.4 in /tools/WinGetLogViewer by Dependabot (@dependabot) [bot] in #6385
Block admin uninstall of user package by JohnMcPMS in #6345
Full Changelog : v1.30.80-preview...v1.30.90-preview
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Windows Package Manager 1.30.80-preview
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
No results found
This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by filing an issue .
Updated NUnit to v4
Fixed a crash ( 0x8000ffff ) when using --disable-interactivity with the Resume experimental feature enabled during install operations.
Bump js-yaml from 4.1.1 to 4.3.0 in /tools/WinGetLogViewer by Dependabot (@dependabot) [bot] in #6359
Fix portable tests impacted by ADO image by JohnMcPMS in #6354
/await:strict and fixes for it by JohnMcPMS in #6240
Fix NuGet packages path by Flor Chacón (@florelis) in #6365
Update in-codebase documentation for E2E tests by Kaleb Luedtke (@Trenly) in #6355
Update NUnit to v4 by Kaleb Luedtke (@Trenly) in #6287
Use NUnit key constraints in DSCv3 settings tests by Kaleb Luedtke (@Trenly) in #6371
Optional Telemetry Event for Microsoft Store Catalog Installs (msstore Source) by Shmueli Englard (@shmuelie) in #6352
New Contributors
Shmueli Englard (@shmuelie) made their first contribution in #6352
Full Changelog : v1.30.50-preview...v1.30.80-preview
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Windows Package Manager 1.30.70-preview
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
No results found
This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by filing an issue .
Fixed a crash ( 0x8000ffff ) when using --disable-interactivity with the Resume experimental feature enabled during install operations.
Apply latest loc patch by Flor Chacón (@florelis) in #6262
Remove old Store certs, replace test use with generated ones by JohnMcPMS in #6275
Add .gitattributes and normalize line endings across repo by Tianon (SSO) (@tianon-sso) in #6267
Renormalize by JohnMcPMS in #6276
Change event type by JohnMcPMS in #6273
Update minor version, archive release notes by JohnMcPMS in #6279
Align .gitattributes and .editorconfig by Kaleb Luedtke (@Trenly) in #6285
Doc manifest schema process by JohnMcPMS in #6280
Fix crash with --disable-interactivity and EFResume by Kaleb Luedtke (@Trenly) in #6302
Fix configuration elevation validation for standard flow by JohnMcPMS in #6307
Bump markdown-it from 14.1.1 to 14.2.0 in /tools/WinGetLogViewer by Dependabot (@dependabot) [bot] in #6296
Bump undici from 7.25.0 to 7.28.0 in /tools/WinGetLogViewer by Dependabot (@dependabot) [bot] in #6305
Bump form-data from 4.0.5 to 4.0.6 in /tools/WinGetLogViewer by Dependabot (@dependabot) [bot] in #6311
Clean vcpkg artifacts on solution clean by Kaleb Luedtke (@Trenly) in #6339
Fix punctuation in error messages by Jan T. Sott (@idleberg) in #6314
Fix cpprest checked iterator build error by Kaleb Luedtke (@Trenly) in #6301
Undo normalization of external files by Flor Chacón (@florelis) in #6336
New Contributors
Tianon (SSO) (@tianon-sso) made their first contribution in #6267
Jan T. Sott (@idleberg) made their first contribution in #6314
Full Changelog : v1.29.240...v1.30.70-preview
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Windows Package Manager 1.30.50-preview
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
No results found
This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by filing an issue .
Fixed a crash ( 0x8000ffff ) when using --disable-interactivity with the Resume experimental feature enabled during install operations.
Apply latest loc patch by Flor Chacón (@florelis) in #6262
Remove old Store certs, replace test use with generated ones by JohnMcPMS in #6275
Add .gitattributes and normalize line endings across repo by Tianon (SSO) (@tianon-sso) in #6267
Renormalize by JohnMcPMS in #6276
Change event type by JohnMcPMS in #6273
Update minor version, archive release notes by JohnMcPMS in #6279
Align .gitattributes and .editorconfig by Kaleb Luedtke (@Trenly) in #6285
Doc manifest schema process by JohnMcPMS in #6280
Fix crash with --disable-interactivity and EFResume by Kaleb Luedtke (@Trenly) in #6302
Fix configuration elevation validation for standard flow by JohnMcPMS in #6307
Bump markdown-it from 14.1.1 to 14.2.0 in /tools/WinGetLogViewer by Dependabot (@dependabot) [bot] in #6296
Bump undici from 7.25.0 to 7.28.0 in /tools/WinGetLogViewer by Dependabot (@dependabot) [bot] in #6305
Bump form-data from 4.0.5 to 4.0.6 in /tools/WinGetLogViewer by Dependabot (@dependabot) [bot] in #6311
Clean vcpkg artifacts on solution clean by Kaleb Luedtke (@Trenly) in #6339
Fix punctuation in error messages by Jan T. Sott (@idleberg) in #6314
Fix cpprest checked iterator build error by Kaleb Luedtke (@Trenly) in #6301
Undo normalization of external files by Flor Chacón (@florelis) in #6336
New Contributors
Tianon (SSO) (@tianon-sso) made their first contribution in #6267
Jan T. Sott (@idleberg) made their first contribution in #6314
Full Changelog : v1.29.240...v1.30.50-preview
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Windows Package Manager 1.29.280
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
No results found
This is the latest of Windows Package Manager v1.29. If you find any bugs or problems, please help us out by filing an issue .
Experimental under sourcePriority ; defaulted to disabled.
With this feature, one can assign a numerical priority to sources when added or later through the source edit command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal.
Search result ordering in winget is currently based on these values in this order:
Match quality (how well a valid field matches the search request)
Match field (which field was matched against the search request)
Source order (was always relevant, but with priority you can more easily affect this)
Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely install ) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands.
REST result match criteria update
Along with the source priority change, the results from REST sources (like msstore ) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically.
Preserve installer arguments across export and import
winget export now captures the --override and --custom arguments that were used when a package was originally installed and saves them into the export file. When subsequently running winget import , those values are automatically re-applied during installation — --override replaces all installer arguments and --custom appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected.
--no-progress flag
Added a new --no-progress command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the visual.progressBar setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable.
MCP upgrade support
The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios:
find-winget-packages now accepts an upgradeable parameter (default: false ). When set to true , it lists only installed packages that have available upgrades — equivalent to winget upgrade . The query parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?"
install-winget-package now accepts an upgradeOnly parameter (default: false ). When set to true , it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to install-winget-package without upgradeOnly instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with find-winget-packages with upgradeable=true , "Update all my apps."
Authenticated GitHub API requests in PowerShell module
The PowerShell module now automatically uses GH_TOKEN or GITHUB_TOKEN environment variables to authenticate GitHub API requests. This significantly increases the GitHub API rate limit, preventing failures in CI/CD pipelines. Use -Verbose to see which token is being used.
Default priority of installer types
Installer type selection no longer depends on the order defined on the manifest. Instead, preference is given in this order:
MSI / Wix / Burn
Nullsoft / Inno / EXE
When a user configures installer type requirements or preferences, the order in which they are listed is now respected during installer selection.
Improved list output when redirected
winget list (and similar table commands) no longer truncates output when stdout is redirected to a file or variable — column widths are now computed from the full result set.
Spinner and progress bar output are suppressed when no console is attached, keeping redirected output clean.
Log file naming strategy
Added a user setting ( logging.fileNameStrategy ) for controlling the default naming strategy for installer log files. Supported values are manifest (default), timestamp , guid , and shortguid . Only applies to logs generated by installers if the installer itself supports the logging switch / parameter.
Sortable list output
winget list now supports sorting results via --sort <field> (repeatable for multi-field sorting), --ascending / --descending direction flags, and a persistent output.sortOrder setting. Available sort fields: name , id , version , source , available , relevance . By default, results are sorted alphabetically by name when no query is present; use --sort relevance to preserve the previous source-determined ordering.
winget export now works when the destination path is a hidden file
Fixed the useLatest property in the DSC v3 Microsoft.WinGet/Package resource schema to emit a boolean default ( false ) instead of the incorrect string "false" .
SignFile in WinGetSourceCreator now supports an optional RFC 3161 timestamp server via the new TimestampServer property on the Signature model. When set, signtool.exe is called with /tr <url> /td sha256 , embedding a countersignature timestamp so that signed packages remain valid after the signing certificate expires.
File and directory paths passed to signtool.exe and makeappx.exe are now quoted, fixing failures when paths contain spaces.
DSC export now correctly exports WinGet Admin Settings
winget validate now performs case-insensitive comparison for file extensions where applicable
winget source reset now properly resets default sources instead of removing them
DSC v3 Microsoft.WinGet/Package resource now honors the installMode property to use silent or interactive installer switches as specified
Fixed a crash ( 0x8000ffff ) when using --disable-interactivity with the Resume experimental feature enabled during install operations.
[1.29] Fix crash with --disable-interactivity and EFResume by Kaleb Luedtke (@Trenly) in #6303
Fix configuration elevation validation for standard flow (1.29) by JohnMcPMS in #6318
Full Changelog : v1.29.250...v1.29.280
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Windows Package Manager 1.29.250
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
No results found
This is a release candidate of Windows Package Manager v1.29. If you find any bugs or problems, please help us out by filing an issue .
Experimental under sourcePriority ; defaulted to disabled.
With this feature, one can assign a numerical priority to sources when added or later through the source edit command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal.
Search result ordering in winget is currently based on these values in this order:
Match quality (how well a valid field matches the search request)
Match field (which field was matched against the search request)
Source order (was always relevant, but with priority you can more easily affect this)
Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely install ) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands.
REST result match criteria update
Along with the source priority change, the results from REST sources (like msstore ) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically.
Preserve installer arguments across export and import
winget export now captures the --override and --custom arguments that were used when a package was originally installed and saves them into the export file. When subsequently running winget import , those values are automatically re-applied during installation — --override replaces all installer arguments and --custom appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected.
--no-progress flag
Added a new --no-progress command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the visual.progressBar setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable.
MCP upgrade support
The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios:
find-winget-packages now accepts an upgradeable parameter (default: false ). When set to true , it lists only installed packages that have available upgrades — equivalent to winget upgrade . The query parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?"
install-winget-package now accepts an upgradeOnly parameter (default: false ). When set to true , it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to install-winget-package without upgradeOnly instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with find-winget-packages with upgradeable=true , "Update all my apps."
Authenticated GitHub API requests in PowerShell module
The PowerShell module now automatically uses GH_TOKEN or GITHUB_TOKEN environment variables to authenticate GitHub API requests. This significantly increases the GitHub API rate limit, preventing failures in CI/CD pipelines. Use -Verbose to see which token is being used.
Default priority of installer types
Installer type selection no longer depends on the order defined on the manifest. Instead, preference is given in this order:
MSI / Wix / Burn
Nullsoft / Inno / EXE
When a user configures installer type requirements or preferences, the order in which they are listed is now respected during installer selection.
Improved list output when redirected
winget list (and similar table commands) no longer truncates output when stdout is redirected to a file or variable — column widths are now computed from the full result set.
Spinner and progress bar output are suppressed when no console is attached, keeping redirected output clean.
Log file naming strategy
Added a user setting ( logging.fileNameStrategy ) for controlling the default naming strategy for installer log files. Supported values are manifest (default), timestamp , guid , and shortguid . Only applies to logs generated by installers if the installer itself supports the logging switch / parameter.
Sortable list output
winget list now supports sorting results via --sort <field> (repeatable for multi-field sorting), --ascending / --descending direction flags, and a persistent output.sortOrder setting. Available sort fields: name , id , version , source , available , relevance . By default, results are sorted alphabetically by name when no query is present; use --sort relevance to preserve the previous source-determined ordering.
winget export now works when the destination path is a hidden file
Fixed the useLatest property in the DSC v3 Microsoft.WinGet/Package resource schema to emit a boolean default ( false ) instead of the incorrect string "false" .
SignFile in WinGetSourceCreator now supports an optional RFC 3161 timestamp server via the new TimestampServer property on the Signature model. When set, signtool.exe is called with /tr <url> /td sha256 , embedding a countersignature timestamp so that signed packages remain valid after the signing certificate expires.
File and directory paths passed to signtool.exe and makeappx.exe are now quoted, fixing failures when paths contain spaces.
DSC export now correctly exports WinGet Admin Settings
winget validate now performs case-insensitive comparison for file extensions where applicable
winget source reset now properly resets default sources instead of removing them
DSC v3 Microsoft.WinGet/Package resource now honors the installMode property to use silent or interactive installer switches as specified
Make list details stable by JohnMcPMS in #6020
Move to IReference rather than custom enum for optional bool by JohnMcPMS in #6022
Apply latest loc patch by Flor Chacón (@florelis) in #6023
Bump version to 1.29 by Flor Chacón (@florelis) in #6019
Remove 'listDetails' from release notes for 1.29 by Flor Chacón (@florelis) in #6026
Update doc as WinGet is not in preview by Gijs Reijn (@Gijsreyn) in #5850
Replaced "(C)" with "©" in the main menu. by Imre Eilertsen (@DandelionSprout) in #5845
Source priority by JohnMcPMS in #6029
Update json vcpkg by JohnMcPMS in #6039
Coalesce comments from loc suggestions by JohnMcPMS in #6033
Update Roadmap Milestones doc by Jan Klass (@Kissaki) in #5824
Add copilot instructions by JohnMcPMS in #6048
Add --no-progress option by JohnMcPMS in #6049
Remove Crescendo PowerShell by JohnMcPMS in #6056
Fix casing of WinGet by JohnMcPMS in #6059
Added more info for "Installer Types" values in Settings.md. by Imre Eilertsen (@DandelionSprout) in #6067
Diagnostics update and stable DSC for tests by JohnMcPMS in #6084
feat: authenticate GitHub API requests using GH_TOKEN/GITHUB_TOKEN by Melvin Wang (@wmmc88) in #6071
Tool to investigate SQLite compression by JohnMcPMS in #6074
Add dependencies only option by JohnMcPMS in #6069
docs: fix multiple documentation issues ( #5296 , #5921 , #5108 , #4372 , #5867 ) by John Kennedy (@GrantMeStrength) in #6110
Revert help link in DscCommand by JohnMcPMS in #6111
Update Moq, curl, and c-ares by Kaleb Luedtke (@Trenly) in #6112
Add Timeserver Support for SourceCreator and support spaces in paths and file names by Kaleb Luedtke (@Trenly) in #6113
Report skipped upgrades when install technology differs (upgrade --all) by Ryan Johnson (@AMDphreak) in #6096
[AI Generated] Ensure correct DSC export of admin settings by Kaleb Luedtke (@Trenly) in #6109
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Windows Package Manager 1.29.240
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
No results found
This is a release candidate of Windows Package Manager v1.29. If you find any bugs or problems, please help us out by filing an issue .
Note: This version is not fully localized yet. Localized strings will be included in a future build before stable release.
Experimental under sourcePriority ; defaulted to disabled.
With this feature, one can assign a numerical priority to sources when added or later through the source edit command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal.
Search result ordering in winget is currently based on these values in this order:
Match quality (how well a valid field matches the search request)
Match field (which field was matched against the search request)
Source order (was always relevant, but with priority you can more easily affect this)
Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely install ) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands.
REST result match criteria update
Along with the source priority change, the results from REST sources (like msstore ) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically.
Preserve installer arguments across export and import
winget export now captures the --override and --custom arguments that were used when a package was originally installed and saves them into the export file. When subsequently running winget import , those values are automatically re-applied during installation — --override replaces all installer arguments and --custom appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected.
--no-progress flag
Added a new --no-progress command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the visual.progressBar setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable.
MCP upgrade support
The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios:
find-winget-packages now accepts an upgradeable parameter (default: false ). When set to true , it lists only installed packages that have available upgrades — equivalent to winget upgrade . The query parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?"
install-winget-package now accepts an upgradeOnly parameter (default: false ). When set to true , it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to install-winget-package without upgradeOnly instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with find-winget-packages with upgradeable=true , "Update all my apps."
Authenticated GitHub API requests in PowerShell module
The PowerShell module now automatically uses GH_TOKEN or GITHUB_TOKEN environment variables to authenticate GitHub API requests. This significantly increases the GitHub API rate limit, preventing failures in CI/CD pipelines. Use -Verbose to see which token is being used.
Default priority of installer types
Installer type selection no longer depends on the order defined on the manifest. Instead, preference is given in this order:
MSI / Wix / Burn
Nullsoft / Inno / EXE
When a user configures installer type requirements or preferences, the order in which they are listed is now respected during installer selection.
Improved list output when redirected
winget list (and similar table commands) no longer truncates output when stdout is redirected to a file or variable — column widths are now computed from the full result set.
Spinner and progress bar output are suppressed when no console is attached, keeping redirected output clean.
Log file naming strategy
Added a user setting ( logging.fileNameStrategy ) for controlling the default naming strategy for installer log files. Supported values are manifest (default), timestamp , guid , and shortguid . Only applies to logs generated by installers if the installer itself supports the logging switch / parameter.
Sortable list output
winget list now supports sorting results via --sort <field> (repeatable for multi-field sorting), --ascending / --descending direction flags, and a persistent output.sortOrder setting. Available sort fields: name , id , version , source , available , relevance . By default, results are sorted alphabetically by name when no query is present; use --sort relevance to preserve the previous source-determined ordering.
winget export now works when the destination path is a hidden file
Fixed the useLatest property in the DSC v3 Microsoft.WinGet/Package resource schema to emit a boolean default ( false ) instead of the incorrect string "false" .
SignFile in WinGetSourceCreator now supports an optional RFC 3161 timestamp server via the new TimestampServer property on the Signature model. When set, signtool.exe is called with /tr <url> /td sha256 , embedding a countersignature timestamp so that signed packages remain valid after the signing certificate expires.
File and directory paths passed to signtool.exe and makeappx.exe are now quoted, fixing failures when paths contain spaces.
DSC export now correctly exports WinGet Admin Settings
winget validate now performs case-insensitive comparison for file extensions where applicable
winget source reset now properly resets default sources instead of removing them
DSC v3 Microsoft.WinGet/Package resource now honors the installMode property to use silent or interactive installer switches as specified
Make list details stable by JohnMcPMS in #6020
Move to IReference rather than custom enum for optional bool by JohnMcPMS in #6022
Apply latest loc patch by Flor Chacón (@florelis) in #6023
Bump version to 1.29 by Flor Chacón (@florelis) in #6019
Remove 'listDetails' from release notes for 1.29 by Flor Chacón (@florelis) in #6026
Update doc as WinGet is not in preview by Gijs Reijn (@Gijsreyn) in #5850
Replaced "(C)" with "©" in the main menu. by Imre Eilertsen (@DandelionSprout) in #5845
Source priority by JohnMcPMS in #6029
Update json vcpkg by JohnMcPMS in #6039
Coalesce comments from loc suggestions by JohnMcPMS in #6033
Update Roadmap Milestones doc by Jan Klass (@Kissaki) in #5824
Add copilot instructions by JohnMcPMS in #6048
Add --no-progress option by JohnMcPMS in #6049
Remove Crescendo PowerShell by JohnMcPMS in #6056
Fix casing of WinGet by JohnMcPMS in #6059
Added more info for "Installer Types" values in Settings.md. by Imre Eilertsen (@DandelionSprout) in #6067
Diagnostics update and stable DSC for tests by JohnMcPMS in #6084
feat: authenticate GitHub API requests using GH_TOKEN/GITHUB_TOKEN by Melvin Wang (@wmmc88) in #6071
Tool to investigate SQLite compression by JohnMcPMS in #6074
Add dependencies only option by JohnMcPMS in #6069
docs: fix multiple documentation issues ( #5296 , #5921 , #5108 , #4372 , #5867 ) by John Kennedy (@GrantMeStrength) in #6110
Revert help link in DscCommand by JohnMcPMS in #6111
Update Moq, curl, and c-ares by Kaleb Luedtke (@Trenly) in #6112
Add Timeserver Support for SourceCreator and support spaces in paths and file names by Kaleb Luedtke (@Trenly) in #6113
Report skipped upgrades when install technology differs (upgrade --all) by Ryan Johnson (@AMDphreak) in #6096
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Windows Package Manager 1.29.170-preview
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
No results found
This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by filing an issue .
Experimental under sourcePriority ; defaulted to disabled.
With this feature, one can assign a numerical priority to sources when added or later through the source edit command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal.
Search result ordering in winget is currently based on these values in this order:
Match quality (how well a valid field matches the search request)
Match field (which field was matched against the search request)
Source order (was always relevant, but with priority you can more easily affect this)
Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely install ) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands.
REST result match criteria update
Along with the source priority change, the results from REST sources (like msstore ) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically.
Preserve installer arguments across export and import
winget export now captures the --override and --custom arguments that were used when a package was originally installed and saves them into the export file. When subsequently running winget import , those values are automatically re-applied during installation — --override replaces all installer arguments and --custom appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected.
--no-progress flag
Added a new --no-progress command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the visual.progressBar setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable.
MCP upgrade support
The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios:
find-winget-packages now accepts an upgradeable parameter (default: false ). When set to true , it lists only installed packages that have available upgrades — equivalent to winget upgrade . The query parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?"
install-winget-package now accepts an upgradeOnly parameter (default: false ). When set to true , it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to install-winget-package without upgradeOnly instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with find-winget-packages with upgradeable=true , "Update all my apps."
Authenticated GitHub API requests in PowerShell module
The PowerShell module now automatically uses GH_TOKEN or GITHUB_TOKEN environment variables to authenticate GitHub API requests. This significantly increases the GitHub API rate limit, preventing failures in CI/CD pipelines. Use -Verbose to see which token is being used.
Improved list output when redirected
winget list (and similar table commands) no longer truncates output when stdout is redirected to a file or variable — column widths are now computed from the full result set.
Spinner and progress bar output are suppressed when no console is attached, keeping redirected output clean.
winget export now works when the destination path is a hidden file
Fixed the useLatest property in the DSC v3 Microsoft.WinGet/Package resource schema to emit a boolean default ( false ) instead of the incorrect string "false" .
SignFile in WinGetSourceCreator now supports an optional RFC 3161 timestamp server via the new TimestampServer property on the Signature model. When set, signtool.exe is called with /tr <url> /td sha256 , embedding a countersignature timestamp so that signed packages remain valid after the signing certificate expires.
File and directory paths passed to signtool.exe and makeappx.exe are now quoted, fixing failures when paths contain spaces.
DSC export now correctly exports WinGet Admin Settings
Mitigate packaged preindexed source open lock convoy by Marc-André Moreau (@mamoreau-devolutions) in #6172
Optimize packaged temp ACL handling without weakening ACL repairs by Marc-André Moreau (@mamoreau-devolutions) in #6171
New Contributors
Marc-André Moreau (@mamoreau-devolutions) made their first contribution in #6172
Full Changelog : v1.29.160-preview...v1.29.170-preview
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
Windows Package Manager 1.29.160-preview
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .
No results found
This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by filing an issue .
Experimental under sourcePriority ; defaulted to disabled.
With this feature, one can assign a numerical priority to sources when added or later through the source edit command. Sources with higher priority are sorted first in the list of sources, which results in them getting put first in the results if other things are equal.
Search result ordering in winget is currently based on these values in this order:
Match quality (how well a valid field matches the search request)
Match field (which field was matched against the search request)
Source order (was always relevant, but with priority you can more easily affect this)
Beyond the ability to slightly affect the result ordering, commands that primarily target available packages (largely install ) will now prefer to use a single result from a source with higher priority rather than prompting for disambiguation from the user. Said another way, if multiple sources return results but only one of those sources has the highest priority value (and it returned only one result) then that package will be used rather than giving a "multiple packages were found" error. This has been applied to both winget CLI and PowerShell module commands.
REST result match criteria update
Along with the source priority change, the results from REST sources (like msstore ) now attempt to correctly set the match criteria that factor into the result ordering. This will prevent them from being sorted to the top automatically.
Preserve installer arguments across export and import
winget export now captures the --override and --custom arguments that were used when a package was originally installed and saves them into the export file. When subsequently running winget import , those values are automatically re-applied during installation — --override replaces all installer arguments and --custom appends extra switches — so packages can be reinstalled with the same customizations without any manual intervention. Both fields are optional and independent of each other; packages without stored installer arguments are unaffected.
--no-progress flag
Added a new --no-progress command-line flag that disables all progress reporting (progress bars and spinners). This flag is universally available on all commands and takes precedence over the visual.progressBar setting. Useful for automation scenarios or when running WinGet in environments where progress output is undesirable.
MCP upgrade support
The WinGet MCP server's existing tools have been extended with new parameters to support upgrade scenarios:
find-winget-packages now accepts an upgradeable parameter (default: false ). When set to true , it lists only installed packages that have available upgrades — equivalent to winget upgrade . The query parameter becomes optional in this mode, allowing it to filter results or be omitted to list all upgradeable packages. AI agents can use this to answer requests like "What apps can I update with WinGet?"
install-winget-package now accepts an upgradeOnly parameter (default: false ). When set to true , it only upgrades an already-installed package and returns a clear error if the package is not installed (pointing to install-winget-package without upgradeOnly instead). AI agents can use this to answer requests like "Update WinGetCreate" or, in combination with find-winget-packages with upgradeable=true , "Update all my apps."
Authenticated GitHub API requests in PowerShell module
The PowerShell module now automatically uses GH_TOKEN or GITHUB_TOKEN environment variables to authenticate GitHub API requests. This significantly increases the GitHub API rate limit, preventing failures in CI/CD pipelines. Use -Verbose to see which token is being used.
Improved list output when redirected
winget list (and similar table commands) no longer truncates output when stdout is redirected to a file or variable — column widths are now computed from the full result set.
Spinner and progress bar output are suppressed when no console is attached, keeping redirected output clean.
winget export now works when the destination path is a hidden file
Fixed the useLatest property in the DSC v3 Microsoft.WinGet/Package resource schema to emit a boolean default ( false ) instead of the incorrect string "false" .
SignFile in WinGetSourceCreator now supports an optional RFC 3161 timestamp server via the new TimestampServer property on the Signature model. When set, signtool.exe is called with /tr <url> /td sha256 , embedding a countersignature timestamp so that signed packages remain valid after the signing certificate expires.
File and directory paths passed to signtool.exe and makeappx.exe are now quoted, fixing failures when paths contain spaces.
DSC export now correctly exports WinGet Admin Settings
Report skipped upgrades when install technology differs (upgrade --all) by Ryan Johnson (@AMDphreak) in #6096
[AI Generated] Ensure correct DSC export of admin settings by Kaleb Luedtke (@Trenly) in #6109
Update default for useLatest by Kaleb Luedtke (@Trenly) in #6114
Add Update commands for MCP by Kaleb Luedtke (@Trenly) in #6117
Preserve overrides with export and import by Kaleb Luedtke (@Trenly) in #6118
Quote winget server path before calling CreateProcess by yao-msft in #6122
Update to spell check v26 by Kaleb Luedtke (@Trenly) in #6128
Add issue types to issue templates by Demitrius Nelon (@denelon) in #6139
Improve MOTW error handling in download flow by Kaleb Luedtke (@Trenly) in #6127
Allow exporting to hidden files by Kaleb Luedtke (@Trenly) in #5795
Add thread globals for downloader thread by Kaleb Luedtke (@Trenly) in #6141
Dynamically select drive for test by Kaleb Luedtke (@Trenly) in #6129
Change how Truncation works by Kaleb Luedtke (@Trenly) in #6142
Admin setting and group policy for configuration processor path argument by JohnMcPMS in #6119
Add comments to loc strings by Flor Chacón (@florelis) in #6150
Move XML ref ahead by JohnMcPMS in #6154
Add policy for notifying authors of Localization Restriction by Kaleb Luedtke (@Trenly) in #6156
Dont log failures to get font title info by David Bennett (@dkbennett) in #6163
[ListCommand] Fix --source filter not restricting list output to specified source by Madhusudhan-MSFT in #6159
Improved manifest validations for MSI and Windows Feature names by JohnMcPMS in #6170
New Contributors
Ryan Johnson (@AMDphreak) made their first contribution in #6096
Full Changelog : v1.29.140-preview...v1.29.160-preview
There was an error while loading. Please reload this page .
There was an error while loading. Please reload this page .