Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
O

oneget

> 编程语言
Open source

PackageManagement (aka OneGet) is a package manager for Windows

2.4K stars0 likes1 views
WebsiteGitHub

About

PackageManagement (aka OneGet) is a package manager for Windows

Announcement

This module is currently not in development. We are no longer accepting any pull requests to this repository. OneGet is in a stable state and is expected to recieve only high-priority bug fixes from Microsoft in the future.

Alternatively, we would suggest looking at the community AnyPackage project as an actively developed replacement for OneGet.

If you have a question, or are seeing an unexpected behavior from this module please open up an issue in this repository.

The PowerShell/PowerShellGet repository is actively in development as the new PowerShell package manager.

Build Status - Master

AppVeyor (Windows) Travis CI (Linux / macOS)
av-image tv-image

Build Status - Nightly Builds

AppVeyor (Windows)
av-nightimage

PackageManagement (aka OneGet)

What's New

PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases. Also PackageManagement and PowershellGet Modules are regularly updated in PowerShellGallery.com.

Thus check out the latest version from PowerShellGallery.com.

Get Started!

OneGet is shipped in Win10 and Windows Server 2016! For downlevel OS, you can install the WMF 5.1 and then start using the OneGet.

You can follow @PSOneGet on Twitter to be notified of every new build.

  • Learn how to use the PowerShell OneGet cmdlets and try some samples
  • Read our General Q and A
  • Read Writing OneGet Provider Guidelines
  • Learn about the 8 Laws of Software Installation
  • General Troubleshooting
  • Check out more help information in our wiki page

What is PackageManagement (OneGet)?

OneGet is a Windows package manager, renamed as PackageManagement. It is a unified interface to package management systems and aims to make Software Discovery, Installation, and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed.

With OneGet, you can

  • Manage a list of software repositories in which packages can be searched, acquired, and installed
  • Search and filter your repositories to find the packages you need
  • Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

PackageManagement Architecture


Let's Try it

Prerequisites

  • Windows 10, Windows Server 2016, or down-level Windows OS + WMF5
  • Linux or Mac with the PowerShellCore

Working with PowerShellGallery.com

…

Working with http://www.NuGet.org repository

…

Try the latest PackageManagement (OneGet)

You can run install-module PowerShellGet to install the latest PackageManagment and PowerShellGet from PowerShellGallery.

Downloading the Source Code

OneGet repo has a number of other repositories embeded as submodules. To make things easy, you can just clone recursively:

powershell
git clone --recursive https://github.com/OneGet/oneget.git

If you already cloned but forgot to use --recursive, you can update submodules manually:

powershell
git submodule update --init

Building the code

powershell
# After cloning this repository, go to the project folder:
> cd oneget
> cd src

# download the dotnet cli tool
> .\bootstrap.ps1

# building OneGet for fullclr
> .\build.ps1 net452

#building OneGet for coreclr
> .\build.ps1 netstandard2.0

If successfully built above, you should be able to see a folder: oneget\src\out\PackageManagement\ whose layout looks like below:

  • coreclr
  • fullclr
  • PackageManagement.format.ps1xml
  • PackageManagement.psd1
  • PackageManagement.psm1
  • PackageProviderFunctions.psm1

Deploying it

Generate PackageManagement.nupkg

We can use publish-module to create a .nupkg. Assuming you want to put the generated .nupkg in c:\test folder. You can do something like below. Note I cloned to E:\OneGet folder.

powershell
cd E:\OneGet\oneget\src\out\PackageManagement
Register-PSRepository -name local -SourceLocation c:\test
Get-PSRepository
Publish-Module -path .\ -Repository local
PS E:\OneGet\oneget\src\out\PackageManagement> dir c:\test\PackageManagement*.nupkg

   Directory: C:\test

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        11/4/2016   4:15 PM        1626335 PackageManagement.1.1.0.0.nupkg

Then you can do

powershell
find-module -Repository local
install-module -Repository local -Name PackageManagement

to get the newly built PackageManagement on your machines.

Manual copy

You can also manually copy the OneGet binaries. For example, copy the entire E:\OneGet\oneget\src\out\PackageManagement folder you just built to your $env:Programfiles\WindowsPowerShell\Modules\PackageManagement\#onegetversion\

If you are running within PowerShellCore, similarily drop the PackageManagement folder to your $env:Programfiles\PowerShell\#psversion\Modules\PackageManagement\#onegetversion\,

or copy to /opt/microsoft/powershell/<psversion>/Modules/PackageManagement/#onegetversion/, if you are running on Linux or Mac.

Note: OneGet version number can be found from the PackageManagement.psd1 file.

Testing the code

powershell
> cd oneget
> cd Test
> & '.\run-tests.ps1' fullclr
> & '.\run-tests.ps1' coreclr

Understanding the OneGet code repository

Feel free to clone the repository and check out the different branches:

Branches

There are currently three branches in the git repository:

Branch/Tag Purpose
master The master branch is where the daily builds of OneGet will be made from.
WMF5_RTM The WMF5_RTM tag is to mark the WMF 5.0 RTM release point.
TP5 The TP5 tag is to mark the TP5 release point.
wip The wip branch is where the current unstable and not-likely-working coding is taking place. This lets you see where I'm at before stuff actually hits the master branch. Fun to read, but really, the wild-west of code branches.

Team Members

Branch Purpose
@sydneyhsmith Program Manager on OneGet.
@jianyunt Engineer owner on OneGet & its providers.
@edyoung Our engineer manager on OneGet.
@alerickson Engineer on the team.

Follow us on Twitter

More Resources

  • NuGet Provider
  • PowerShellGet Provider
  • MicrosoftDockerProvider
  • NanoServerPackage
  • Check out OneGet providers from our Community such as Gistprovider, OfficeProvider, 0Install and more from powershellgallery.com or simply run Find-PackageProvider cmdlet
  • Want to write a provider? Check out our sample provider
  • Want to download packages from http://Chocolatey.org, try out ChocolateyGet provider
  • Want to control which packages to use and where to get them from based on your organization? Check out PSL provider

Announcement

This module is currently not in development. We are no longer accepting any pull requests to this repository. OneGet is in a stable state and is expected to recieve only high-priority bug fixes from Microsoft in the future.

If you have a question, or are seeing an unexpected behavior from this module please open up an issue in this repository.

The PowerShell/PowerShellGet repository is actively in development as the new PowerShell package manager.

Build Status - Master

AppVeyor (Windows) Travis CI (Linux / macOS)
av-image tv-image

Build Status - Nightly Builds

AppVeyor (Windows)
av-nightimage

PackageManagement (aka OneGet)

What's New

PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases. Also PackageManagement and PowershellGet Modules are regularly updated in PowerShellGallery.com.

Thus check out the latest version from PowerShellGallery.com.

Get Started!

OneGet is shipped in Win10 and Windows Server 2016! For downlevel OS, you can install the WMF 5.1 and then start using the OneGet.

You can follow @PSOneGet on Twitter to be notified of every new build.

  • Learn how to use the PowerShell OneGet cmdlets and try some samples
  • Read our General Q and A
  • Read Writing OneGet Provider Guidelines
  • Learn about the 8 Laws of Software Installation
  • General Troubleshooting
  • Check out more help information in our wiki page

What is PackageManagement (OneGet)?

OneGet is a Windows package manager, renamed as PackageManagement. It is a unified interface to package management systems and aims to make Software Discovery, Installation, and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, use

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C#

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言