2010-12-08 6 views
0

J'ai un projet .Net 4.0 que je souhaite construire dans CruiseControl.Net.Pourquoi les champs CruiseControl.Net ne sont-ils pas disponibles dans mon script de construction?

Il est maintenant configuré, donc il construit un build de publication et fonctionne parfaitement à l'exception du numéro de version, où je ne peux pas référencer CCNetLabel, que je souhaite utiliser pour le dernier chiffre du numéro de version.

Lorsque j'essaie de faire référence au champ/variable, on me dit que c'est inconnu.

Il semblerait que CC.Net ne «transfère» pas les valeurs à mon script, mais qu'est-ce que je fais de mal?

Ci-dessous ccnet.config et produit ci.config

Merci pour toutes suggestions,

Anders, Danemark

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> 
    <cb:include 
     href="configs/product-ci.config" 
     xmlns:cb="urn:ccnet.config.builder"/> 
</cruisecontrol> 

<cb:scope xmlns:cb="urn:ccnet.config.builder" 
    CCNetWebServer="dkapp04" 
    TriggerInterval="10" 
    WorkingDir="d:\ccnet.output\product" 
    msBuildTargets="Publish" 
    excludedNunitCategories="" 
    publishUrl="http://dkapp04/product/Dev/" 
    destinationFolder="d:\ccnet.output\product\Dev" 
    version ="1.0.0.${CCNetLabel}" 
> 
    <project 
    name="product" 
    webURL="http://$(CCNetWebServer)/ccnet/server/local/project/product-ci/ViewLatestBuildReport.aspx" 
    queue="default"> 

    <state type="state" directory="C:\Program Files\CruiseControl.NET\server\States\" /> 

    <triggers> 
     <intervalTrigger seconds="$(TriggerInterval)" /> 
    </triggers> 

    <sourcecontrol type="svn"> 
     <trunkUrl>https://dkapp04.company.com/svn/product/trunk</trunkUrl> 
     <workingDirectory>$(WorkingDir)</workingDirectory> 
     <cleanCopy>false</cleanCopy> 
     <executable>C:\Program Files\VisualSVN Server\bin\svn.exe</executable> 
    </sourcecontrol> 

    <tasks> 
     <msbuild 
     executable = "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" 
     workingDirectory = "$(WorkingDir)\src" 
     projectFile="BuildScript.proj" 
     buildArgs = "/p:Configuration=Debug /p:excludedNunitCategories=$(excludedNunitCategories) /p:DestinationFolder=$(destinationFolder) /p:PublishUrl=$(publishUrl) /p:ApplicationVersion=$(version)" 
     targets = "$(msBuildTargets)" 
     timeout = "100" 
     logger = "C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll" 
      /> 
    </tasks> 
    </project> 
</cb:scope> 

Répondre

0

Le CCNetLabel est passé comme une propriété dans le fichier de projet MSBuild et disponible à l'intérieur pour une utilisation. Je l'utilise comme ceci avec une valeur par défaut.

<PropertyGroup> 
<CCNetLabel Condition="$(CCNetLabel)==''">0.0.0.0</CCNetLabel> 
</PropertyGroup> 
+0

Salut Pratik, merci d'avoir pris le temps. J'aurais besoin d'un peu plus d'aide, cependant. J'ai maintenant téléchargé le svnRevisionLabeller qui fonctionne comme un charme. Je reçois les révisions que je vise. La version publiée est toujours 1.0.0.3 comme écrit dans les fichiers source (et affiché dans VS). Comment puis-je obtenir la dernière étape dans msbuild? Je n'arrive pas à trouver les paramètres qui correspondent ... –

+0

Ma solution était la suivante - je n'avais pas le paramètre version dans la ligne. Merci pour aider, Anders

Questions connexes