CCNet: Wie kopiere ich die SVN-Revisionsnummer in eine Datei im MSBuild?
-
13-09-2019 - |
Frage
Ist anyboy wissen, wie die LastChangeNumber
Parameter in MSBuild passieren?
Ich versuche, diese zu verwenden:
<Exec Condition=" '$(LastChangeNumber)' != '' " Command=">\\server\destination\subversion_revision.txt echo subversion $(LastChangeNumber)" />
Welche ignoriert erfolgreich die Bedingung, wenn ich den LastChangeNumber Parameter aus der MSBuild wegzulassen, und es gelingt ihm, wenn ich in einem Etagen Parameter wie /p:LastChangeNumber=foo
passieren. Allerdings, wenn ich versuche, diese:
<msbuild>
<executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
<projectFile>MySolution.sln</projectFile>
<buildArgs>/noconsolelogger /p:Configuration=Debug /p:LastChangeNumber=$(LastChangeNumber) /v:diag</buildArgs>
<logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
</msbuild>
Ich erhalte eine Fehlermeldung in meinem CrusieControl.NET Server Log:
ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException: Verweis auf unbekanntes Symbol LastChangeNumber
Lösung
Nun, ich fand einen Weg, es zu tun:
<Exec Command=">$(DeployDir)label.txt echo subversion $(CCNetLabel)" />
Mit einem benutzerdefinierten Etikettierer:
<labeller type="assemblyVersionLabeller">
<major>2</major>
<minor>0</minor>
</labeller>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow