5

プロジェクトにArguを追加し、一緒に約 700MB のパッケージをダウンロードしました。これは、Paket が追加のパッケージをインストールすることに関連していますが、フレームワークの制限を >= または単にフレームワーク: net46 で指定する際の微妙な違いを理解したいと思います。

最初の試行で、Argu をpaket.dependenciesファイルに追加しました。

nuget Argu

これにより、ほぼ 1 GB のパッケージがダウンロードされたので、次のように尋ねました。

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

パケットはこう答えた。

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

そして、この特定の制限により、実際に不要なパッケージがすべて削除されました。

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) をターゲットにする必要があります。

4

1 に答える 1