2015-06-18 112 views
2

我最近通過NuGet將MathNet.Numerics添加到我的C#解決方案中。解決方案文件夾中的軟件包目錄膨脹到大約50 MB!然而,我可以簡單地下載MathNet dll並僅使用它,僅佔用1.5 MB。如果我還想要文檔,我可以包含XML,這是另一個3.5 MB。爲什麼MathNet.Numerics NuGet包如此之大?

我是否在使用Nuget時出錯或者是這種預期行爲?它似乎浪費了很多空間。

+0

您可以只查看包文件夾的內容。如果您這樣做,您會注意到有一個4MB的nupkg文件和7個子文件夾,每個文件夾都以特定的目標項目組合爲目標。你可能只需刪除那些你不感興趣的配置。 –

+0

@JeroenVannevel是的,大部分的膨脹似乎來自於多個Android版本的軟件包。雖然NuGet預計會出現在那裏,但不會破壞嗎? – Superbest

+2

你可以試試看,看看它是否。我刪除了net35和net40,重建了這個項目,它仍然建成。 NuGet PM還表示它仍然安裝,所以我認爲它不會是一個問題。 –

回答

1

它看起來像預期的行爲。由NuGet軟件包所有者決定將多少個版本放入一個軟件包中。

您可能可以安全地刪除它,但每次恢復NuGet文件時它都會恢復。如果您擔心構建或版本中包含大量臃腫內容,請檢查您的文件並確保僅拷貝需要的MathNet.Numerics.dll版本。

+0

另外,作爲源代碼控制/重新下載中的二進制文件的替代方法,您可以將程序包複製到本地nuget服務器,並在yoir項目中使用該程序包源代碼 – Ewan

4

的包中包含相同版本的許多版本是利益衝突的原因是:

  • 我們想支持wide range of platforms
  • 我們希望利用高級功能,即使它們僅適用於某些平臺(通常僅適用於完整的.Net框架,如TPL或System.Numerics),性能也適用於兼容性和可用性方面的原因。
  • 通過僅爲每個版本(包括所有平臺)發佈單個程序包來避免下游依賴性噩夢。

如果這會導致您的問題,請考慮在discuss.mathdotnet.com(新建)中提出此問題,或者在GitHub中打開問題。 PS:如果NuGet不適合你,我們也提供Zip archives你可以手動處理,並精確選擇你需要的東西。

相關問題