2016-12-20 3 views
6

Я добавил 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) вместо> =.

ответ

1

Это не происходит с более поздними версиями paket. Однако по-прежнему можно использовать пакеты, которые приведут к загрузке дополнительных транзитивных зависимостей из-за того, что некоторые пакеты объявляют зависимость только по netstandard, а не по полной структуре. Подробнее см .: https://github.com/fsprojects/Paket/issues/2564.

 Смежные вопросы

  • Нет связанных вопросов^_^