2015-06-18 113 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你可以手动处理,并精确选择你需要的东西。

相关问题