1

Est-ce que anyboy sait comment passer le paramètre LastChangeNumber dans MSBuild?CCNet: Comment copier le numéro de révision svn dans un fichier dans MSBuild?

Je suis en train d'utiliser ceci:

<Exec Condition=" '$(LastChangeNumber)' != '' " Command=">\\server\destination\subversion_revision.txt echo subversion $(LastChangeNumber)" /> 

Ce qui ne tient pas compte avec succès la condition si je quitte le paramètre LastChangeNumber du MSBuild, et réussit si je passe un paramètre superposé comme /p:LastChangeNumber=foo. Cependant, quand j'essaie ceci:

<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> 

je reçois une erreur dans mon serveur CrusieControl.NET journal:

ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException: référence au symbole inconnu LastChangeNumber

Répondre

3

Eh bien, je l'ai trouvé une façon de le faire:

<Exec Command=">$(DeployDir)label.txt echo subversion $(CCNetLabel)" /> 

Avec une étiqueteuse personnalisée:

<labeller type="assemblyVersionLabeller"> 
    <major>2</major> 
    <minor>0</minor> 
</labeller> 
+1

$ (LastChangeNumber) est défini ou un processus qui est appelé par CCNet. Le processus lui-même doit remplacer l'environnement varibales. Il semble que cela ne soit pas fait par msbuild. Donc, votre solution semble être au moins une façon de le faire fonctionner. – PVitt