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