1

所以,我一直在研究一个 azure 管道,它应该下载 NuGet 包,然后将其上传到 ProGet 脚。但它应该仅在提要中尚不存在该包时才上传该包,以避免冗余。(如果该包已经存在于Feed中,但版本不同,仍应上传)。有没有办法使用 nuget.exe 或其他类型的 NuGet 工具检查 ProGet 提要中是否已经存在包?

4

1 回答 1

2

您可以在此处使用多个选项之一。

第一个是使用nuget.exe,特别是它的list命令。以下命令将列出提要上可用的软件包的所有版本:

nuget list <PackageName> -Source <ProgetFeedURL> -AllVersions

where<PackageName>显然是 [part of the] 包名称,并且<ProgetFeedURL>是提要 URL。输出是一个包列表及其版本,您可以轻松解析以找出相关版本是否已在提要中。

另一种方法是在 ProGet 中为一个包形成一个下载 URL,然后向该 URL 发送一个简单的 GET 请求。URL 通常是这样形成的(请注意,您的 ProGet 版本可能形成不同的 URL。如果将鼠标悬停在浏览器中的“下载”按钮上,您可以验证这一点):

http(s)://<ProGetServer>/nuget/<ProGetFeed>/package/<PackageName>/<PackageVersion>

如果此 GET 请求导致 404,您可以确定提要中没有该包的此类版本。

我想必须有一些 Proget 的 REST API 来验证类似的东西,但我没有使用过。

于 2021-09-07T13:14:03.887 回答