Paket 12.0.0-alpha003
dotnet tool install --global Paket --version 12.0.0-alpha003
dotnet new tool-manifest
dotnet tool install --local Paket --version 12.0.0-alpha003
#tool dotnet:?package=Paket&version=12.0.0-alpha003&prerelease
nuke :add-package Paket --version 12.0.0-alpha003
Paket
A dependency manager for .NET with support for NuGet packages and git repositories.
Why Paket?
NuGet did not separate out the concept of transitive dependencies. If you install a package into your project and that package has further dependencies then all transitive packages are included in the packages.config. There is no way to tell which packages are only transitive dependencies.
Even more importantly: If two packages reference conflicting versions of a package, NuGet will silently take the latest version (read more). You have no control over this process.
Paket on the other hand maintains this information on a consistent and stable basis within the paket.lock file in the solution root.
This file, together with the paket.dependencies file enables you to determine exactly what's happening with your dependencies.
Paket also enables you to reference files directly from git repositories or any http-resource.
For more reasons see the FAQ.
Online resources
- Source code
- Documentation
- Getting started guide
- Install the Paket .NET tool:
dotnet tool install paket
Troubleshooting and support
- Found a bug or missing a feature? Feed the issue tracker.
- Announcements and related miscellanea through Twitter (@PaketManager)
Quick contributing guide
- Fork and clone locally.
- Build the solution with Visual Studio,
build.cmdorbuild.sh. - Create a topic specific branch in git. Add a nice feature in the code. Do not forget to add tests and/or docs.
- Run
build.cmd(build.shon Linux/macOS) to make sure all tests are still passing. - When built, you'll find the binaries in
./binwhich you can then test with locally, to ensure the bug or feature has been successfully implemented. - Send a Pull Request.
If you want to contribute to the docs then please modify the markdown files in /docs/content and send a pull request.
Note, that short description and syntax for each command is generated automatically from the Paket.Commands module.
License
The MIT license
Maintainer(s)
The default maintainer account for projects under "fsprojects" is @fsprojectsgit - F# Community Project Incubation Space (repo management)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 12.0.0-alpha003 | 33 | 10/26/2026 |
| 12.0.0-alpha002 | 343 | 10/17/2026 |
| 12.0.0-alpha001 | 399 | 10/11/2026 |
| 11.0.1 | 6,700 | 10/11/2026 |
| 11.0.0 | 2,697 | 10/5/2026 |
| 11.0.0-alpha004 | 106 | 10/5/2026 |
| 11.0.0-alpha003 | 136 | 9/27/2026 |
| 10.3.1 | 599,585 | 1/20/2026 |
| 10.2.1 | 6,006 | 1/19/2026 |
| 10.2.0 | 2,527 | 1/19/2026 |
| 10.1.1 | 2,471 | 1/19/2026 |
| 10.0.1 | 2,544 | 1/19/2026 |
| 10.0.0-alpha011 | 86,275 | 11/11/2025 |
| 10.0.0-alpha009 | 369 | 11/11/2025 |
| 10.0.0-alpha007 | 384 | 11/11/2025 |
| 10.0.0-alpha006 | 378 | 11/11/2025 |
| 10.0.0-alpha005 | 380 | 11/11/2025 |
| 10.0.0-alpha004 | 386 | 11/11/2025 |
| 10.0.0-alpha002 | 401 | 11/11/2025 |
| 9.0.2 | 1,263,543 | 11/19/2024 |
BREAKING: Paket.Core targets net10.0 instead of netstandard2.0: the projects and scripts that reference it must target net10.0 or later, as the `paket` .NET tool already needs the .NET 10 runtime. FSharp.DependencyManager.Paket stays on netstandard2.0 - https://github.com/fsprojects/Paket/issues/4317
Update the NuGet client libraries from 5.11 to 7.9, along with System.Net.Http.WinHttpHandler and System.Security.Cryptography.ProtectedData
Faster framework restrictions: writing the lock files of large repositories takes a quarter of the time and allocates less than 40% of the memory it did - https://github.com/fsprojects/Paket/issues/4317
`paket convert-from-nuget` now updates `.slnx` solution files, as it does `.sln` ones - https://github.com/fsprojects/Paket/issues/4443
`paket convert-from-nuget` removes the `NuGet.Config`, `NuGet.targets` and `NuGet.exe` files of the root `.nuget` folder again, as well as the folder once it is empty: Paket 11.0 had stopped finding them. It reads and removes the `NuGet.Config` of the root and of the `.nuget` folder under the names NuGet looks for, `nuget.config`, `NuGet.config` or `NuGet.Config`, and the `NuGet.targets` and `NuGet.exe` of the `.nuget` folder whatever the case of their name, where Linux only found lowercase names
`paket convert-from-nuget` converts and removes nothing through a link: it skips the projects, NuGet files and solutions of the folders that are links, with a warning for each such folder, so these projects are not converted. It leaves in place a `.nuget` folder that is a link and the solutions that are links, and skips with a warning the solutions it cannot read or update, instead of failing
`paket convert-from-nuget` only removes the solution items of a `.sln` that are files it deletes, found by their path in any solution folder. It removed the first line naming a NuGet file of `.nuget`, even a project or a `packages.config` it kept
`paket convert-from-nuget` keeps the non-ASCII characters of a `.sln` without a BOM, which it saved in ASCII
`paket generate-load-scripts` keeps in the group scripts the assemblies that reference themselves, like System.Reactive 7.0, which it dropped. It also keeps, with a warning, the assemblies and packages that depend on each other, which it dropped too - https://github.com/fsprojects/Paket/issues/4458