有没有办法检查 nuget 包是否已经在 ProGet Repo 上?
Is there a way to check if a nuget package is already on a ProGet Repo?
所以,我一直在研究一个天蓝色的管道,它应该下载一个 NuGet 包,然后将它上传到一个 ProGet 脚。但它应该只上传不存在于提要中的包以避免冗余。 (如果包已经存在于提要上,但版本不同,仍应上传)。有没有一种方法可以使用 nuget.exe 或某种其他类型的 NuGet 工具来检查 ProGet 提要中是否已存在包?
您可以使用此处的几个选项之一。
第一个是使用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,您可以确定 feed 上没有该包的此类版本。
我想一定有一些 REST API 的 Proget 来验证类似的东西,但我没有用过它。
所以,我一直在研究一个天蓝色的管道,它应该下载一个 NuGet 包,然后将它上传到一个 ProGet 脚。但它应该只上传不存在于提要中的包以避免冗余。 (如果包已经存在于提要上,但版本不同,仍应上传)。有没有一种方法可以使用 nuget.exe 或某种其他类型的 NuGet 工具来检查 ProGet 提要中是否已存在包?
您可以使用此处的几个选项之一。
第一个是使用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,您可以确定 feed 上没有该包的此类版本。
我想一定有一些 REST API 的 Proget 来验证类似的东西,但我没有用过它。