如何通过API或NuGet客户端SDK获取NuGet包的源仓库URL?
编者注: 本问题询问的是特定场景下的NuGet包源仓库获取需求,和常规的包源查找问题存在差异,有个性化的实现要求。
背景/问题
我尝试使用NuGet客户端SDK,以编程方式追溯设备上的某个NuGet包对应的源仓库地址。
目前我已通过NuGet Client SDK拉取到包元数据,但元数据中仅存在项目URL,没有我需要的源仓库URL。
请问有没有无需下载并解析最新版本的nuspec文件即可获取该信息的方法?

解决方案
- 直接使用NuGet客户端SDK内置的
PackageMetadataResource类即可实现需求,不需要额外下载解析nuspec文件。调用该类的GetMetadataAsync方法,传入目标包的ID和版本号,拿到的IPackageSearchMetadata实例中自带Repository属性,该属性包含源仓库URL、仓库类型、对应提交哈希等全量信息,直接读取即可。 - 如果你直接对接NuGet源的HTTP接口,可直接调用对应源的注册元数据接口,指定包ID和版本后,返回的结构化数据中就包含提前提取好的repository字段信息,全程不需要下载包本体或者单独拉取nuspec文件。
内容的提问来源于stack exchange,提问作者SeanKilleen
相关产品推荐
相关产品推荐

