0

Teamcity で作業しているリモート コンピューターの xml ファイルでノード (構成のために true または false) を変更する必要があり、次の関数を記述しました。

 function Set-layout($hiddenfunctionality)
 {

$properties = Resolve-Path ".\vsphere\properties.ps1"

. $properties

#Read env.properties
$configFilePath = Resolve-Path ".\environment\prod-env\env.properties"
Write-Host $configFilePath

$file = resolve-path("$configFilePath")
[xml]$doc = Get-Content $file

$node = $doc.SelectSingleNode("/project/property[@name='backend.server']")
$backend_ip = $node.value

$layoutRel = Resolve-Path ".\layout\layoutRel.ps1"
#Remote-Copy $layoutRel "\\$backend_ip\install"
Copy-Item $layoutRel "\\$backend_ip\install"

$dom_user = [string]($domain_name+ "\" + $domain_username)
$Connection = @{"server" = $backend_ip; "username" = $dom_user; "password" = $domain_password}
$rem_command = 'powershell -ExecutionPolicy RemoteSigned . c:\Empower\install\layoutRel.ps1 $hiddenfunctionality'
RemoteCommand $Connection $rem_command

   }

この関数は機能しており、ノード「configuration/appSettings/add[@key='opentext.empower.site.enableHiddenFunctionality」の値を変更するスクリプトを呼び出します

    Param ($hiddenfunctionality)
    Write-Host "Updating C:\Program Files\Opentext\Empower\Web\Web.config"
    [System.Xml.XmlDocument] $xd = new-object System.Xml.XmlDocument
    $file = resolve-path("C:\Program Files\Opentext\Empower\Web\web\Web.config")
    $xd.load($file)
     $xd.SelectNodes("configuration/appSettings/add[@key='opentext.empower.site.enableHiddenFunctionality']").Item(0).SetAttribute( 'value', $hiddenfunctionality)
    $xd.Save( $file)
     Write-Host "Done"

私のチームシティ構成では、次の文字列を実行します

       powershell . %teamcity.build.checkoutDir%\Build\CI_2.0\vsphere\env-handler.ps1; Set-layout $true

すべて機能しますが、ファイルのフィールド値は空ですが、true または false(

静的な true または false を作成することはできません。Teamcity のいくつかの構成のために変更する必要があります

たぶん、cat_1 の場合は teamcity anf からビルド構成の名前を取得できますが、cat_2 の場合は「false」よりも「true」を実行しますが、その方法がわかりません

4

1 に答える 1

0

それで、ノードを変更する私のスクリプトlayoutrel.ps1が、パラメータ$hiddenfunctionalityを取らないことがわかりました。私が $hiddenfunctionality="true" を与えたとき、それは動作します(

于 2013-09-23T06:42:32.187 に答える