我的理解是,nuget CLI和visual studio本身不仅可以使用官方nuget.org提要,还可以使用来自myget等第三方网站的其他提要。
这是否意味着Feed本身遵循定义的标准,因此这些工具可以与任何Feed一起使用?
如果是,我在哪里可以找到这个标准?
我也对v2
和v3
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格式?这是我的问题的关键。
答案 0 :(得分:5)
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类连接到服务器。
答案 1 :(得分:0)
提要组织基于一组API,即操作提要的客户端(例如, nuget.exe)使用这些API来管理供稿。
以下是NuGet v3 Feed的说明:https://docs.microsoft.com/en-us/nuget/api/overview