【问题标题】:Why is the MathNet.Numerics NuGet package so big?为什么 MathNet.Numerics NuGet 包这么大?
【发布时间】:2015-06-18 23:36:02
【问题描述】:

我最近通过 NuGet 将 MathNet.Numerics 添加到了我的 C# 解决方案中。解决方案文件夹中的包目录膨胀到大约 50 MB!然而,我可以简单地下载 MathNet dll 并仅使用它,它只占用 1.5 MB。如果我也想要文档,我可以包含 XML,这又是 3.5 MB。

我是在使用 Nuget 错误还是这是预期的行为?好像很浪费空间。

【问题讨论】:

  • 您可以只查看 packages 文件夹的内容。如果您这样做,您会注意到有一个 4MB 的 nupkg 文件和 7 个子文件夹,每个文件夹针对特定的目标项目组合。您可能只需删除那些您不感兴趣的配置。
  • @JeroenVannevel 是的,大部分的臃肿似乎来自多个 Android 版本的包。但是,NuGet 不会中断,因为它希望那些存在?
  • 你可以试试看是否可以。我删除了 net35 和 net40,重新构建了项目,它仍然可以构建。 NuGet PM 还表明它仍然安装,所以我认为它不会是一个问题。
  • 为什么重要?无论如何,您都不应该将二进制文件放在源代码管理中(这是 NuGet 的优点之一),而且 50 MB 简直是小菜一碟。
  • @DanielMann 如果您曾经负责过大型复杂的产品,那么您会意识到有时将库(二进制文件)置于源代码控制之下是最好的选择。Nuget 有利有弊,就像任何系统一样。

标签: c# nuget math.net mathnet-numerics


【解决方案1】:

软件包包含相同版本的多个版本的原因是利益冲突:

  • 我们愿意支持wide range of platforms
  • 出于性能以及兼容性和可用性原因,我们希望利用高级功能,即使它们仅在某些平台上可用(通常仅在完整的 .Net 框架上,如 TPL 或 System.Numerics)。
  • 每个版本(包括所有平台)只发布一个包,从而避免下游依赖的噩梦。

如果这给您带来了问题,请考虑通过discuss.mathdotnet.com(新)向团队提出这一点,或者在 GitHub 中提出问题。

PS:如果 NuGet 不适合您,我们还提供 Zip archives 您可以手动处理并准确选择您需要的内容。

【讨论】:

    【解决方案2】:

    看起来像预期的行为。由 NuGet 包所有者决定将多少个版本放入单个包中。

    您可能可以安全地删除它,但每次还原 NuGet 文件时它都会回来。如果您担心构建或发布中包含大量膨胀,请检查您的 .csproj 文件并确保仅复制您需要的 MathNet.Numerics.dll 版本。

    【讨论】:

    • 另外,作为源代码控制/重新下载中二进制文件的替代方案,您可以将包复制到本地 nuget 服务器并在 yoir 项目中使用该包源
    猜你喜欢
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 2017-09-17
    • 2021-11-17
    • 1970-01-01
    • 2021-08-10
    相关资源
    最近更新 更多