2016-12-20 2 views
6

Ich habe Argu zu meinem Projekt hinzugefügt und ca. 700MB Pakete wurden zusammen mit ihm heruntergeladen. Dies steht im Zusammenhang mit Paket installs extra packages, aber ich möchte die feinen Unterschiede bei der Spezifizierung der Rahmenbeschränkungen mit> = oder nur Framework: net46 verstehen.Paket Rahmenbeschränkung Unterschiede

Auf meinem ersten Versuch ich nur Argu zur paket.dependencies Datei hinzugefügt:

nuget Argu

Da dies in einem Download von fast einem GB-Paketen geführt, fragte ich:

.\.paket\paket.exe why nuget System.Threading.Thread

und antwortet:

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. 

Dann habe ich die folgende Beschränkung auf paket.dependencies:

nuget Argu framework: >= net46

jedoch diese die gleichen Pakete in das Herunterladen geführt.

Schließlich habe ich:

nuget Argu framework: net46

Und diese spezifische Einschränkung alle unneccassary Pakete haben in der Tat entfernen:

Garbage collecting Microsoft.NETCore.Platforms 
Garbage collecting Microsoft.Win32.Primitives 
Garbage collecting NETStandard.Library 
Garbage collecting System.AppContext 
Garbage collecting System.Collections.Concurrent 
... 

jedoch alle meine anderen Abhängigkeiten werden wie folgt angegeben (meist als Folge , aber nicht immer, da ich das ursprüngliche Problem beseitigte):

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 

Also meine Frage ist Argu spezielle in irgendeiner Weise, oder sollte ich immer Framework-Einschränkungen und zielen gezielt 46 (oder 45) anstelle von> =.

Antwort

1

Dies tritt bei späteren Versionen von Paket nicht auf. Es ist jedoch immer noch möglich Pakete zu nuggettieren, die zum Download von zusätzlichen transitiven Abhängigkeiten führen, da einige Pakete nur eine Abhängigkeit vom netstandard und nicht vom vollständigen Framework deklarieren. Für Details siehe: https://github.com/fsprojects/Paket/issues/2564.