[英]TFS 2015 Can build variables access other build variables?
當我在新的TFS 2015團隊構建中定義自定義變量時,如下所示:
名稱: SomeOutput
值: $(System.DefaultWorkingDirectory)\\Some
...它似乎沒有擴展$(System.DefaultWorkingDirectory)
。
有沒有解決的辦法?
編輯:
至少看起來它並沒有隨處擴展。
例如,在MSBuild-Arguments中, /p:OUTPUT="$(SomeOutput)"
擴展為/p:OUTPUT="C:\\TfsData\\BuildAgents\\_work\\3\\s\\Some"
但是當我添加cmd行時將工具設置為cmd
並將參數設置為/k set
構建任務,打印
SOMEOUTPUT=$(System.DefaultWorkingDirectory)\\Some
您可以使用Visual Studio Marketplace中的VSTS Variable Tasks擴展 。
在“變量”屏幕中定義變量並使用其他變量作為值時,它們將不會展開(如您所料)。 而是將文字文本傳遞給工作流中的任務。 如果沒有這個小任務,以下配置將不起作用:
Variable Value Build.DropLocation \\\\share\\drops\\$(Build.DefinitionName)\\$(Build.BuildNumber)
通過將Expand變量任務添加到工作流程的頂部,它將負責擴展,因此它下面的任何任務都將獲得您所追求的值。
https://github.com/jessehouwing/vsts-variable-tasks/wiki/Expand-Variable
PS:新代理(版本2.x)現在自動擴展變量。
我有同樣的問題 - 想要拼湊一個由幾個內置變量組成的路徑並將其傳遞給PS腳本。
解決方法 :我最終通過相應生成的環境變量(例如$env:BUILD_SOURCESDIRECTORY
)將實際腳本中的變量組合在一起。
不是我原本想到的,但它起碼至少。 缺點 - 如果我需要更改路徑,我總是要更改PS腳本而不是構建變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.