所以,我一直在研究一条天蓝色管道,它应该下载一个NuGet包,然后上传到一个ProGet脚上。但是,它只应该上传包,如果它还没有在提要上存在,以避免冗余。(如果包已经存在于提要中,但版本不同,则仍应上载)。是否有一种方法可以使用ProGet或其他类型的NuGet工具来检查包是否已经存在于nuget.exe提要上?
发布于 2021-09-07 13:14:03
您可以在这里使用以下几种选项之一。
第一个是使用nuget.exe,特别是它的list命令。下面的命令将列出提要上可用的包的所有版本:
nuget list <PackageName> -Source <ProgetFeedURL> -AllVersions其中<PackageName>显然是包名的一部分,而<ProgetFeedURL>是提要URL。输出是包的列表,以及它们的版本,您可以很容易地对其进行解析,以确定所讨论的版本是否已经在提要上。
另一种方法可以是为ProGet中的包形成一个下载URL,并向该URL发送一个简单的GET请求。URL通常是这样形成的(请注意,您的ProGet版本可能会形成不同的URL。如果将鼠标悬停在浏览器中的“下载”按钮上,则可以验证):
http(s)://<ProGetServer>/nuget/<ProGetFeed>/package/<PackageName>/<PackageVersion>如果这个GET请求导致404的结果,您可以确保提要上没有这样的包版本。
我想肯定有一些Proget的REST来验证类似的东西,但是我还没有使用过它。
https://stackoverflow.com/questions/69084412
复制相似问题