Hallo!
Ich möchte, während eines Builds, in einem Source file die Revisionsnummer einbinden. Mit Tortoise
SVN ginge das mittels "keyword substitution" und $WCREV$ recht einfach (so mache ich das daheim). Hier verwenden wir TeamCity. Also habe ich dem MSBuild Skript folgendes hinzugefügt:
<Exec Command="PowerShell -file ReplaceBuildVcsNumber.ps1" WorkingDirectory="x:\TheFolder" ContinueOnError="false"/>
Das Powerscript selber:
$content = [System.Io.File]::ReadAllText('TheFileToChange')
$revnr = [System.Environment]::GetEnvironmentVariable("BUILD_VCS_NUMBER")
$content = $content.Replace('$build.vcs.number$', $revnr)
[System.Io.File]::WriteAllText('TheFileToChange', $content)
Leider funktioniert das nicht, die Umgebungvariable ist leer.
Also habe ich das Ganze geändert:
<Exec Command="PowerShell -file ReplaceBuildVcsNumber.ps1 -rev %build.vcs.number%" WorkingDirectory="x:\TheFolder" ContinueOnError="false"/>
param([string]$revnr = "rev")
$content = [System.Io.File]::ReadAllText('TheFileToChange')
$content = $content.Replace('$build.svn.number$', $revnr)
[System.Io.File]::WriteAllText('TheFileToChange', $content)
Funktioniert auch nicht.
Letzter Versuch:
<Exec Command="PowerShell -file ReplaceBuildVcsNumber.ps1 -rev %BUILD_VCS_NUMBER%" WorkingDirectory="x:\TheFolder" ContinueOnError="false"/>
Und auch das... funktioniert nicht.
Hat jemand den entscheidenden Hinweis?
Danke und Grüße!
PS: Crosspost
http://devnet.jetbrains.com/thread/441776
[EDIT="Phoenix"]Titel korrigiert. Da hat ein c gefehlt [/EDIT]