[英]Custom variables in TFS Release Management
我正在使用TFS 2017.1構建和發布功能。 在我的發布定義中,我有幾個發布變量,需要在PowerShell任務中引用(在遠程計算機上執行)。 到目前為止,我已經嘗試了以下選項,但無法使其正常工作。
添加了Execute PowerShell任務以將發布變量存儲到環境變量中:
$releaseVaraiables = Get-ChildItem Env: | Where-Object { $_.Name -like "ACL_*" }
Write-Host "##vso[task.setvariable variable=aclVariables]$releaseVaraiables"
添加了在遠程計算機上執行Execute PowerShell任務:
在這里,我無法讀取環境變量(也許因為這是遠程計算機任務?)
Write-Verbose "problem reading $env:aclVariables" -Verbose
然后我嘗試將環境變量作為參數傳遞,但是那也不起作用
param
(
$RbacAccessTokenParams
)
$RbacAccessTokenParams.GetEnumerator() | % {$_.Name}
$RbacAccessTokenParams | % {
Write-Verbose "variable is $_" -Verbose
Write-Verbose "name is $_.Name" -Verbose
Write-Verbose "value is $_.Value" -Verbose
}
這就是我作為論點傳遞的方式
-RbacAccessTokenParams $(aclVariables)
我在這里想念的是什么?
非秘密變量已經存儲為環境變量; 您無需執行任何特殊操作即可訪問它們。 您可以使用$ENV:VariableName
訪問它們。 下划線將替換為下划線。 所以Foo.Bar
將是$env:FOO_BAR
。
機密變量應傳遞到需要它們的腳本中。
但是,這僅適用於代理 。 如果您使用“ PowerShell On Target Machines
上運行PowerShell On Target Machines
任務來運行腳本,則需要將變量作為參數傳遞給腳本。 除非您選擇使用部署組,否則無法解決此問題。
或者,更好的是,遵循配置即編碼的約定,並將特定於應用程序的值存儲在腳本讀取的源代碼控制的配置文件中,以使您不會與部署流程平台緊密耦合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.