2017-05-26 33 views
0

我有一個創建.zip包和projectName.SetParameters.xml我想用我的腳本在此改變中的projectName.SetParameters.xml文件中的參數構建TFS-2017 - 添加了一步輸入的用戶名和密碼

我有一個powershell腳本與Mandotary參數,我希望用戶輸入他們的用戶名和密碼,然後纔可以部署到TFS IIS我按照本指南link 更新:REALESE構建工作,但它不要求用戶輸入用戶名和密碼,我是不是要手動設置在PowerShell的步驟參數箱內?

在我的TFS我有一個PowerShell的步驟i將添加的參數-paramsFilePath C:/ somepath /.../.../ projectName.SetParameters.xml

param(
    [string]$paramsFilePath, 
    [Parameter(Mandatory=$true)] 
    [string]$username, 
    [Parameter(Mandatory=$true)] 
    $password 
) 
Write-Verbose -Verbose "Entering script setParameters.ps1" 
Write-Verbose -Verbose ("Path to Parameters: {0}" -f $paramsFilePath) 

# get the environment variables 
$vars = Get-ChildItem -path env:* 

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

# perform a regex replacement 
$newContents = ""; 
$contents | % { 
    $line = $_ 
    if ($_ -match "__Username__") { 
     $setting = Get-ChildItem -path env:* | ? { $_.Name -eq $Matches[1] } 
     if ($setting) { 
      Write-Verbose -Verbose ("Replacing key {0} with value from environment" -f $username.Name) 
      $line = $_ -replace "__Username__", $username.Value 
     } 
    } 
    $newContents = $line 
} 

Write-Verbose -Verbose "Overwriting SetParameters file with new values" 
Set-Content $paramsFilePath -Value $newContents 

Write-Verbose -Verbose "Exiting script setParameters.ps1" 

這裏是我的parameters.xml代碼

<!--?xml version="1.0" encoding="utf-8" ?--> 
<parameters> 
    <parameter name="machineURL" description="Please enter the name of the Environment" defaultvalue="_UrlValue_" tags=""> 
     <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='machineURL']/@value"> 
     </parameterentry> 
    </parameter> 
    <parameter name="username" description="Please enter the username" defaultvalue="__UserName__" tags=""> 
     <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='username']/@value"> 
     </parameterentry> 
    </parameter> 
    <parameter name="password" description="Please enter the password" defaultvalue="__Password__" tags=""> 
     <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='password']/@value"> 
     </parameterentry> 
    </parameter> 
    </parameters> 

回答

1

在TFS PowerShell執行構建和發佈僅在非交互模式成爲可能。構建和發佈過程只會將執行結果傳送到構建控制檯。

你必須創建一個用戶名的變量。對於密碼,您應該使用隱藏變量:

enter image description here

是的,你必須把 PowerShell的一步

enter image description here

注意的參數箱內的參數:密碼字段似乎安全,而不是可讀的,但它是不是真的很難讀一個隱藏變種的內容iable。

創建變量並設置值。之後,您可以在PowerShell步驟參數框中使用此命令行參數。

-paramsFilePath $(paramsFilePath) -username $(username) -password $(password) 
+0

嗨,我現在得到這個錯誤'不能綁定參數參數'用戶名' –

+0

您是否在您的釋放定義創建變量? – k7s5a

+0

是的,我得到它排序,但我有另一個問題一切似乎工作,但在我的setParameters.xml文件中,它只捕獲第一個參數'

相關問題