Ich mache es jetzt mit einigen benutzerdefinierten Powershell-Skripten.
In der Build-Task schreibe ich eine XML-Datei mit den Variablen I in der Release-Aufgabe benötigen. Die XML-Datei ist später Teil des Artefakts.
Also zunächst einmal ich mein eigenes Skript mit dem Pfad zu der XML-Datei, die Variablennamen und dem aktuellen Wert nennen: ist wie folgt
Die Powershell-Skript. Ich kopieren Sie sie in das Artefakt Staging-Verzeichnis
<Variables>
<Branch>Main</Branch>
</Variables>
Dann, so dass es Teil des Artefakts ist:
Param
(
[Parameter(Mandatory=$true)]
[string]$xmlFile,
[Parameter(Mandatory=$true)]
[string]$variableName,
[Parameter(Mandatory=$true)]
[string]$variableValue
)
$directory = Split-Path $xmlFile -Parent
If (!(Test-Path $xmlFile)){
If (!(Test-Path $directory)){
New-Item -ItemType directory -Path $directory
}
Out-File -FilePath $xmlFile
Set-Content -Value "<Variables/>" -Path $xmlFile
}
$xml = [System.Xml.XmlDocument](Get-Content $xmlFile);
$xml["Variables"].AppendChild($xml.CreateElement($variableName)).AppendChild($xml.CreateTextNode($variableValue));
$xml.Save($xmlFile)
Dies wird in einem XML wie dies zur Folge haben.
In der Freigabe Aufgabe verwende ich eine andere Powershell-Skript, das durch das Lesen der XML eine Aufgabe Variable setzt.
Der erste Parameter ist die Position der XML-Datei, der zweite die Taskvariable (Sie müssen die Variable in der Releasemanagement erstellen) und der letzte ist der Knotenname in der XML.
Die Powershell die XML und die Variable zu lesen ist wie folgt:
Param
(
[Parameter(Mandatory=$true)]
[string]$xmlFile,
[Parameter(Mandatory=$true)]
[string]$taskVariableName,
[Parameter(Mandatory=$true)]
[string]$xmlVariableName
)
$xml = [System.Xml.XmlDocument](Get-Content $xmlFile);
$value = $xml["Variables"][$xmlVariableName].InnerText
Write-Host "##vso[task.setvariable variable=$taskVariableName;]$value"
Werfen Sie einen Blick [hier] (https://lajak.wordpress.com/2011/03/ 13/Pass relatives Pfad Argumente zu msbuild-in-tfs2010-team-build /) und sehen, ob das hilft – lokusking
Hallo lokusking, ich bin die neue skriptbasierten Trennverwaltung. Tut mir leid, ich habe es nicht erwähnt. – Chris