2017-05-29 46 views
0

我想在2017年TFS创建一个版本的定义与PowerShell脚本PowerShell的 - Overiding参数RELASE定义

我乳宁说已经找setParameters.xml文件的路径,其功能以及它PowerShell脚本假设超过所有的令牌,但它只是忽略循环和参数保持不变。

Script代码:

$vars = Get-ChildItem -path env:* 

# read in the setParameters file 
$contents = Get-Content -Path $paramsFilePath 

# perform a regex replacement 

$newContents = ""; 
$contents | % { 
    $line = $_ 
    if ($_ -match "__(\w+)__") { 
     $setting = Get-ChildItem -path env:* | ? { $_.Name -eq $Matches[1] } 
     if ($setting) { 
      Write-Verbose -Verbose ("Replacing key {0} with value from environment" -f $setting.Name) 
      $line = $_ -replace "__(\w+)__", $setting.Value 
     } 
    } 
    $newContents += $line + [Environment]::NewLine 
} 

为什么环路是skiped,我怎么能解决它,所以它会覆盖SetParameters.xml文件中的参数呢?

+0

? Ans如何与tfs相关? – Clijsters

+0

我正在创建一个发布定义。在TFS中...... –

+0

是的,这就是脚本。但是_你的问题_与tfs无关。 – Clijsters

回答

0

对于那些感兴趣的人,我放弃了这个PowerShell,并在Release定义中使用了替换令牌步骤。

我认为它是一种更有效的方式为什么要使用正则表达式替换,而不是PowerShells内置XML功能,可替换的令牌