【问题标题】:Difference between Nuget & SDK dependencies in .Net Core project.Net Core 项目中 Nuget 和 SDK 依赖项之间的区别
【发布时间】:2019-09-21 17:08:03
【问题描述】:

我最近正在研究一个 .net 核心应用程序,我发现了一些我之前可能错过的东西。依赖关系分为三种:

  • 分析器
  • Nuget
  • SDK

分析器足够公平,但我不确定 Nuget 和 SDK 依赖项之间的区别,因为它们对于相同的包也有重叠,例如 Micosoft.AspNetCore.App(2.1.1) 两者都可用SDK 和 nuget 中的依赖项。

这是默认的 .net 核心 Asp.net Web API 与 docker 没有任何 pacakages 或依赖关系的变化。

为什么在两个地方都需要包作为依赖项?

【问题讨论】:

  • 您找到答案了吗?我也有同样的问题。
  • 还没有。我什至现在忘记了这个问题,只是现在才想起你的评论。

标签: .net visual-studio asp.net-core sdk nuget-package


【解决方案1】:

我也想知道同样的事情,虽然我没有直接回答您的问题,但这是我发现的。

这是我的总结:

  • NuGet 感觉(对我而言)
    • 更轻巧
      • 没有内置文档
    • 便携
  • SDK感觉
    • 更健壮
      • 文档、更好的 Intellisense 支持、示例、教程等。
    • 紧密耦合
      • 连接到特定平台或语言
      • Android SDK 无助于 iOS 的开发,反之亦然

研究

NuGet 是一个开源包管理系统,可简化将库合并到项目中的过程。

除了 API 和/或代码库之外,SDK 还可以(并且可能应该拥有)文档、教程、调试帮助。即平台和/或特定语言。见What is an SDK

在 Visual Studio Docs 上的 NuGet versus SDK as a project reference page 上,他们有一个网格来比较和对比两者。 它的技术性超出了我的理解范围,但它让我大致了解了我的解决方案的正确方向。

【讨论】:

    【解决方案2】:

    SDK 部分称为Shared Framework,并在Dotnet Core 2.1 中引入。您可以从 SDK 中删除重复的 nuget 并使用相同的功能,或者您可以通过直接引用 nuget 包来覆盖 SDK 包版本。 有关更多信息和历史记录,请查看 Andrew Lock 的这篇精彩帖子:Exploring the Microsoft.AspNetCore.App shared framework in ASP.NET Core 2.1 (preview 1)

    【讨论】:

      猜你喜欢
      • 2020-02-18
      • 2020-08-31
      • 2020-07-27
      • 2020-04-26
      • 2016-11-26
      • 2017-08-16
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      相关资源
      最近更新 更多