配置NuGet任务后,如何在构建时将VSTS包复制到本地机器?
没问题,这事儿我门儿清,给你分享几个实用的办法,能把VSTS构建生成的NuGet包弄到你的本地机器上:
把VSTS构建生成的NuGet包复制到本地的方法
方法1:通过构建任务直接下载到本地代理机器
如果你的构建用的是本地自托管代理(不是微软托管的临时代理),可以直接加个任务拉取包:
- 在构建定义里添加一个
NuGet Command任务,命令类型选restore - 在「Feeds to use」里选择你已经配置好的VSTS包源
- 在「Packages to restore」里明确指定你刚生成的包ID和版本,比如
YourPackageId -Version 1.0.0 - 设置「Destination directory」为本地机器上的目标路径,比如
C:\LocalNuGetPackages - 构建运行时,这个任务就会自动把包下载到你指定的本地目录
方法2:用PowerShell脚本灵活下载
要是需要更灵活的控制逻辑,加个PowerShell任务也是个好选择:
- 脚本里调用
nuget.exe拉取包,示例命令如下:nuget install YourPackageId -Version 1.0.0 -Source "https://your-vsts-feed-url/nuget/v3/index.json" -OutputDirectory "C:\LocalNuGetPackages" - 别忘了配置VSTS包源的访问权限:可以给代理机器配置凭据,或者把个人访问令牌(PAT)作为参数传入,比如:
nuget install YourPackageId -Version 1.0.0 -Source "https://your-vsts-feed-url/nuget/v3/index.json" -OutputDirectory "C:\LocalNuGetPackages" -ApiKey your-pat-token
方法3:从构建工件下载(最推荐的规范做法)
建议先把生成的NuGet包发布为构建工件,之后再下载到本地:
- 第一步:在构建定义里添加
Publish Build Artifacts任务,把生成的.nupkg文件所在的目录指定为发布路径,设置一个清晰的工件名称 - 第二步:构建完成后,你可以直接在构建结果页面的「Artifacts」板块手动下载包到本地;也可以用Azure DevOps CLI命令批量下载:
az pipelines runs artifact download --run-id <你的构建运行ID> --artifact-name <工件名称> --path C:\LocalNuGetPackages
注意:如果用的是微软托管的代理,构建结束后代理机器会被回收,这种情况下只能用方法3下载工件,或者在构建时把包上传到第三方存储服务,再从存储拉到本地。
内容的提问来源于stack exchange,提问作者Sunil Rangu
相关产品推荐
相关产品推荐

