A predictable replacement for NuGet
iModules Software
Packages fed from nuget.org
Similar to Maven or NPM
Package manager for .NET
For simple apps, NuGet does a sufficient job...
We need to install 3 different packages:
Each of these depend upon XRay.NET
XRay.NET has versions 1.0, 1.1, 1.2, 2.0, 3.0 and 4.0 available
Example from NuGet versioning Part 2: the core algorithm " by Dave Ebbo is licensed under CC BY 2.5
The version resolution used by NuGet is to always pick the lowest version of a dependency that fits in the range. So let’s see what will happen in various scenarios:
If you just install Bravo.NET, you’ll get XRay.NET 1.2
If you just install Charlie.NET, you’ll get XRay.NET 2.0
If you first install Alpha, then Bravo then Charlie
You’ll initially get XRay.NET 1.1 when you install Alpha
XRay.NET will be updated to 1.2 when you install Bravo
Example from NuGet versioning Part 2: the core algorithm by Dave Ebbo is licensed under CC BY 2.5
Automatic removal of unused refs
...and some other nice-to-haves
Paket keeps track of all our dependencies, including transitive dependencies, which means it knows what's being used—and what's not.
This means Paket can remove unused packages without breaking everything.
Ever have a script or simple source file you copied from project to project?
Paket supports pulling those down from a local or remote location without copy pasta polluting your delicious code.
Consistent
Clean
Predictable
If you have Paket on your path
paket init
Invoke-WebRequest
-Uri https://github.com/fsprojects/Paket/releases/download/5.120.0/paket.bootstrapper.exe
-OutFile .paket/paket.exe; ./.paket/paket.exe init
Otherwise...
Text
source https://nuget.org/api/v2
// NuGet packages
nuget NUnit ~> 2.6.3
nuget FAKE ~> 3.4
nuget DotNetZip >= 1.9
// Files from GitHub repositories.
github forki/FsUnit FsUnit.fs
// Gist files.
gist Thorium/1972349 timestamp.fs
// HTTP resources.
http http://www.fssnip.net/1n decrypt.fs
Example from Paket's documentation on GitHub
Text
Newtonsoft.Json
UnionArgParser
DotNetZip
RestSharp
group Test
NUnit
Example from Paket's documentation on GitHub
Text
NUGET
remote: https://nuget.org/api/v2
Castle.Core (3.3.0)
Castle.Core-log4net (3.3.0)
Castle.Core (>= 3.3.0)
log4net (1.2.10)
Castle.LoggingFacility (3.3.0)
Castle.Core (>= 3.3.0)
Castle.Windsor (>= 3.3.0)
Castle.Windsor (3.3.0)
Castle.Core (>= 3.3.0)
Castle.Windsor-log4net (3.3.0)
Castle.Core-log4net (>= 3.3.0)
Castle.LoggingFacility (>= 3.3.0)
Example from Paket's documentation on GitHub
paket add Newtonsoft.JSON
paket add Newtonsoft.JSON --project JSONParser
paket remove Newtonsoft.Json
paket remove Newtonsoft.Json --project XMLParser
paket install
paket restore