2017-07-05 40 views
1

我想设置一些PowerShell脚本在我的TFS Release Agent上可用。TFS发布工件 - 如何链接版本控制工件?

从我迄今学会了这样做的方法是神器了联系,并引用一个PowerShell任务在TFS RM工件链接。

我有麻烦的是,TFS RM文物将只允许我下载整个团队项目中的版本控制,而我只想在下载到代理特定的子文件夹PowerShell脚本。

我得到一个错误,指出消息:

场(来源库)文物应该具有有效值

enter image description here

所以,我要如何连接TFS的子文件夹作为一个可下载的神器? ???

我有我可以使用自定义任务来完成这个呢?

我还没有找到一个在下载在TFS版本控制结合自由发行代理服务器上执行原始文件和工作空间的市场。

回答

0

你不能。发布工件作为构建过程的一部分。您可以轻松控制发布的确切文件夹/文件。

+0

这是行不通的。我不想每次更新构建脚本时都要构建解决方案。 – user5855178

+0

然后创建一个单独的构建并将其链接为辅助构件。 –

0

最简单的方法是,你可以通过使用Get a file REST API得到的文件(S)。

  1. 点击运行在代理
  2. 检查允许脚本访问的OAuth令牌选项(确保生成服务帐户具有下载的文件的权限)
  3. 添加PowerShell的任务发布定义(类型:联脚本)

参数:

-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 

如果想下载一个文件夹中的许多文件,你可以custom build task调用PowerShell创建工作空间,通过使用Microsoft Team Foundation Server Extended Client package获取文件。