2017-07-05 54 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獲取文件。