Я добавил Argu к моему проекту и около 700 МБ пакетов был загружен вместе с ним. Это связано с Paket installs extra packages, однако я хотел бы разобраться в тонких различиях в определении ограничений рамки с помощью> = или просто рамки: net46.Различия в ограничениях на разметку Paket
На моей первой попытке я просто добавил Argu в файл paket.dependencies
:
nuget Argu
Как это привело к загрузки почти Гб пакетов, я спросил:
.\.paket\paket.exe why nuget System.Threading.Thread
И paket ответил:
Paket version 3.27.02
NuGet System.Threading.Thread is a transitive dependency.
It's a part of following dependency chains:
-> Argu
-> FSharp.Core
-> System.Threading.Thread
-> MathNet.Numerics.FSharp
-> FSharp.Core
-> System.Threading.Thread
0 seconds - ready.
Затем я добавил следующее ограничение на paket.dependencies:
nuget Argu framework: >= net46
Однако это привело к загрузке одни и те же пакеты.
Наконец я сделал:
nuget Argu framework: net46
И это специфическое ограничение действительно удалить все unneccassary пакетов:
Garbage collecting Microsoft.NETCore.Platforms
Garbage collecting Microsoft.Win32.Primitives
Garbage collecting NETStandard.Library
Garbage collecting System.AppContext
Garbage collecting System.Collections.Concurrent
...
Однако вся мою другая зависимость указана как это (в основном в результате , но не всегда, поскольку я искал исходную проблему):
source https://www.nuget.org/api/v2
nuget FAKE framework: >= net46
nuget FileHelpers framework: >= net46
nuget FSharp.Collections.ParallelSeq 1.0.2 framework: >= net46
nuget Fsharp.Data framework: >= net46
nuget MathNet.Numerics.FSharp 3.14.0-beta01 beta framework: >= net46
nuget MathNet.Numerics.MKL.Win-x64 2.2.0 framework: >= net46
nuget NuGet.CommandLine framework: >= net46
nuget Streams 0.4.1 framework: >= net46
nuget System.Linq.Dynamic 1.0.7 framework: >= net46
nuget Fsharp.Configuration framework: >= net46
Так что мой вопрос: Argu
особым образом, или я должен всегда использовать рамки ограничений и конкретно нацелить 46 (или 45) вместо> =.