簡體   English   中英

TFS 2015可以構建變量訪問其他構建變量嗎?

[英]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

編輯2:這是我的變量
變量

這是我的工作流程步驟
工作流程

這就是構建打印的內容
構建輸出

您可以使用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)現在自動擴展變量。

它可以實現。

您可能需要使用% %而不是$來調用cmd的變量來打印結果。 還需要在命令前面添加call 這是一個簡單的例子: cmd提示擴展變量的例子

注意: System.DefaultWorkingDirectorycmd不可用(不確定原因); 您需要使用System_DefaultWorkingDirectory 可以在日志中查看詳細信息。

我有同樣的問題 - 想要拼湊一個由幾個內置變量組成的路徑並將其傳遞給PS腳本。

解決方法 :我最終通過相應生成的環境變量(例如$env:BUILD_SOURCESDIRECTORY )將實際腳本中的變量組合在一起。

不是我原本想到的,但它起碼至少。 缺點 - 如果我需要更改路徑,我總是要更改PS腳本而不是構建變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM