如何以编程方式从 Visual Studio Team Services 下载解决方案
How to download solution from Visual Studio Team Services programmatically
我需要一种从 Visual Studio Team Services 下载源代码的方法,基本上我需要一个压缩的解决方案,就像我在 VSTS 站点上时您可以手动下载它一样。
我尝试过的:
我已经完成了 VSTS API reference 但不幸的是我找不到我需要的东西。
我可以采取的解决方法是:
- 发出 POST 并检索 items batch,这将 return 主分支
中所有文件的列表
- 遍历列表并一个一个下载文件
但我希望有一种方法可以给我一个包含所有文件的分支的 zip。
从源代码下载文件的方法有很多种:
选项 1:通过 REST 下载文件 API。
详细步骤可以参考here。然后你可以将文件压缩为zip格式。
选项 2:通过排队构建下载文件。
您可以使用 Archive Files 任务和 Copy Files 任务添加构建定义,将 .sln 文件从源代码压缩到您的本地路径。两个任务的设置如下:
存档文件任务
要存档的根文件夹(或文件):单击 …
按钮以 select 您要下载的 .sln 文件。
复制文件任务
源文件夹:$(Build.ArtifactStagingDirectory)
内容:*.zip
目标文件夹:可以定义本地路径,如C:\a
.
我设法使用 .NET Client Libraries for VSTS 找到解决方案:Microsoft.TeamFoundationServer.Client 和 Microsoft.VisualStudio.Services.Client,正如人们猜测的那样,它们是 VSTS REST API 功能的包装器。
为了从 TFVC 中检索压缩文件夹内容,我使用的方法是:
Microsoft.TeamFoundation.SourceControl.WebApi.TfvcHttpClient.GetItemsBatchZipAsync(TfvcItemRequestData
itemRequestData, Guid project)
这是一个 Gist 完整的代码示例。
我需要一种从 Visual Studio Team Services 下载源代码的方法,基本上我需要一个压缩的解决方案,就像我在 VSTS 站点上时您可以手动下载它一样。
我尝试过的:
我已经完成了 VSTS API reference 但不幸的是我找不到我需要的东西。
我可以采取的解决方法是:
- 发出 POST 并检索 items batch,这将 return 主分支 中所有文件的列表
- 遍历列表并一个一个下载文件
但我希望有一种方法可以给我一个包含所有文件的分支的 zip。
从源代码下载文件的方法有很多种:
选项 1:通过 REST 下载文件 API。
详细步骤可以参考here。然后你可以将文件压缩为zip格式。
选项 2:通过排队构建下载文件。
您可以使用 Archive Files 任务和 Copy Files 任务添加构建定义,将 .sln 文件从源代码压缩到您的本地路径。两个任务的设置如下:
存档文件任务
要存档的根文件夹(或文件):单击 …
按钮以 select 您要下载的 .sln 文件。
复制文件任务
源文件夹:$(Build.ArtifactStagingDirectory)
内容:*.zip
目标文件夹:可以定义本地路径,如C:\a
.
我设法使用 .NET Client Libraries for VSTS 找到解决方案:Microsoft.TeamFoundationServer.Client 和 Microsoft.VisualStudio.Services.Client,正如人们猜测的那样,它们是 VSTS REST API 功能的包装器。
为了从 TFVC 中检索压缩文件夹内容,我使用的方法是:
Microsoft.TeamFoundation.SourceControl.WebApi.TfvcHttpClient.GetItemsBatchZipAsync(TfvcItemRequestData itemRequestData, Guid project)
这是一个 Gist 完整的代码示例。