Search code examples
onegetwinget

What's relationship between the new winget and the Microsoft.PackageManagement


Years back, there was a Microsoft package manager called PackageManagement (aka OneGet), which seems to be based on PowerShell command conventions, and was extensible.

Recently, Microsoft introduced another package manager tool known as winget, which is still considered pre-release. It seems not to use the PowerShell conventions.

What is the relationship between these two?

Is WinGet going to replace OneGet, or will there be some sort of interop?


Solution

  • There is no relationship other than both were created by Microsoft, apparently by different teams at different times.

    PackageManagement (formerly OneGet, est. 2014) is a unified manager that does not have its own repository. It relies on other providers instead (for example ChocolateyGet, PowerShellGet). Since it is all PowerShell, it offers good CLI and scripting experience.

    WinGet is still in preview (as of August 2021). It will be part of App Installer app distributed through Microsoft Store. WinGet has a repository of packages maintained on GitHub. The client is written as native C++ console application. All output is text-only and lacks all the nice things PowerShell gives us.

    There is a third-party OneGet provider for Winget and also quite strong user voice to add official PowerShell support. See the following GitHub issues:

    WinGet gets regular releases, so there is hope WinGet will improve and add official PowerShell support.