【问题标题】:Do nuget feeds follow a defined standard?nuget 提要是否遵循定义的标准?
【发布时间】:2016-05-17 22:05:14
【问题描述】:

我的理解是,nuget CLI 和 Visual Studio 本身不仅适用于官方 nuget.org 提要,还适用于来自第三方网站(如 myget)的其他提要。

这是否意味着提要本身遵循定义的标准,因此这些工具可以与任何提要一起使用?

如果是,我在哪里可以找到这个标准?

我也对v2v3 nuget.org 提要之间的区别感到困惑。

更新

我现在了解到官方 nuget 提要有两个版本,v2 是基于 OData 的,v3 是一个 rest api。我也知道 nuget cli 和 Visual Studio 能够同时与两者对话。

我仍然不明白的是,如果你看这个帖子https://docs.nuget.org/create/hosting-your-own-nuget-feeds,它说

有几个可用的第三方 NuGet 服务器使远程 易于配置和设置的私有源,包括 Visual Studio 团队服务、MyGet、Inedo 的 ProGet、JFrog 的 Artifactory、NuGet 服务器和 Sonatype 的 Nexus。请参阅 NuGet 生态系统概述 了解有关这些选项的更多信息。

为了使 nuget cli 和 Visual Studio 都能够处理所有这些不同的第三方提要,肯定必须有一些基本的通用标准提要格式。例如,它们是否都使用与 v2 相同的 OData 格式?这是我问题的症结所在。

【问题讨论】:

    标签: nuget


    【解决方案1】:

    NuGet v2 提供 OData 提要。

    NuGet v3 提供了一个使用几种不同协议的 RESTful API,我相信其中一种协议是基于 JSON-LD 的。

    Building NuGet 3.x 帖子中有一些关于此的信息。

    another StackOverflow post 中还有一些关于 NuGet v3 API 的更多信息

    NuGet API 第三方服务器支持的内容取决于第三方服务器。例如,VSTS 支持 NuGet v2 和 NuGet v3 API,每个 API 都有不同的 url。例如,Team City 实现了 NuGet v1 API。 ProGet 在撰写本文时支持 NuGet v2。

    除非您使用某些较低级别的类,否则 NuGet 客户端本身会对您隐藏这些差异。 NuGet 客户端本身有一个简单的检查,如果 url 以 index.json 结尾,那么它是 NuGet v3 提要并使用一组不同的类连接到服务器。否则,它使用一组 NuGet v2 类连接到服务器。

    【讨论】:

    • 我也读过这就是我提出问题的原因。似乎没有一个标准(基于 OData 的 v2、v3 rest api、第三方 ??)那么 visual studio、.net cli 如何能够处理所有这些不同的提要?
    • NuGet 有两个内置客户端,Visual Studio 在其 NuGet 包管理器中使用这些客户端。一个用于 NuGet v2,一个用于 NuGet v3。 .NET CLI 使用 NuGet 与 v2 和 v3 源进行通信。
    • 我已更新问题并进一步澄清
    【解决方案2】:

    提要组织基于一组 API,即操作提要的客户端(例如, nuget.exe) 使用这些 API 来管理提要。

    这里是 NuGet v3 提要的描述:https://docs.microsoft.com/en-us/nuget/api/overview

    【讨论】:

      猜你喜欢
      • 2011-12-24
      • 1970-01-01
      • 2012-11-06
      • 2015-05-05
      • 2011-06-02
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      相关资源
      最近更新 更多