TFS发布工件-如何链接版本控制工件?
我正在尝试设置一些powershell脚本,以便在我的TFS发行代理上可用 从我到目前为止所了解的情况来看,实现这一点的方法是将工件链接起来,并在TFS RM中的PowerShell任务中引用工件链接 我遇到的问题是,TFS RM工件只允许我在版本控制中下载整个团队项目,而我只希望将特定子文件夹中的powershell脚本下载到代理 我收到一条错误消息,上面说: 字段(源存储库)工件应具有有效值 那么,如何将TFS的子文件夹链接为可下载的工件 我可以使用自定义任务来完成此任务吗TFS发布工件-如何链接版本控制工件?,tfs,azure-devops,release-management,Tfs,Azure Devops,Release Management,我正在尝试设置一些powershell脚本,以便在我的TFS发行代理上可用 从我到目前为止所了解的情况来看,实现这一点的方法是将工件链接起来,并在TFS RM中的PowerShell任务中引用工件链接 我遇到的问题是,TFS RM工件只允许我在版本控制中下载整个团队项目,而我只希望将特定子文件夹中的powershell脚本下载到代理 我收到一条错误消息,上面说: 字段(源存储库)工件应具有有效值 那么,如何将TFS的子文件夹链接为可下载的工件 我可以使用自定义任务来完成此任务吗 我还没有在市场
我还没有在市场上找到一个可以在TFS版本控制绑定和工作区中免费下载原始文件以在Release agent服务器上执行的工具。你不能。作为构建过程的一部分发布工件。您可以轻松控制已发布的确切文件夹/文件。简单的方法是,您可以使用获取文件
-url '$(System.TeamFoundationCollectionUri)/_apis/tfvc/items?path=$/Scrum2015/ClassLibraryA/hello.ps1&api-version=1.0' -token "$(System.AccessToken)" -filePath "$(System.DefaultWorkingDirectory)\hello.ps1"
脚本:
Param([string]$url,
[string]$token,
[string]$filePath
)
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",$token)))
Invoke-WebRequest -Method Get -Uri $url -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -OutFile $filePath
如果要下载文件夹中的多个文件,可以调用PowerShell来创建工作区并使用获取文件 那不行。我不希望每次更新构建脚本时都构建解决方案。然后创建一个单独的构建并将其作为辅助工件链接。