2009-10-01 5 views
0

J'essaie de définir certaines valeurs dans mon fichier ccnet.config.Obtenir le préprocesseur de configuration pour fonctionner dans CruiseControl.NET

Je cours la version 1.4.4.83.

I ajouté xmlns: cb = "urn: ccnet.config.builder" à mon principal element.like CruiseControl:

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> 

suivant je définissais certaines définit les constantes de processeur:

<cb:define prodbuildtag="1.1.25.1207" /> 
<cb:define testbuildtag="1.1.25.1207"> 

enfin J'ai essayé de référencer les valeurs définissent dans une balise comme ceci:

<sourcecontrol type="svn"> 
    <trunkUrl>https://someserver/svn/myproject/tags/$(prodbuildtag)</trunkUrl> 
    <username>johnDoe</username> 
    <password>JelloW0r1d</password> 
    <tagOnSuccess>false</tagOnSuccess> 
    <tagBaseUrl>https://someserver/svn/myproject/tags/</tagBaseUrl> 
</sourcecontrol> 

Quand je bulid en utilisant le script, il traite s définissez $ (prodbuildtag) comme une chaîne vide et extrait le code basé sur le trunkUrl 'https://someserver/svn/myproject/tags/'. J'ai du mal à faire fonctionner le préprocesseur de configuration; aidez s'il vous plaît.

+0

Où est le cb: défini par rapport à l'étiquette sourcecontrol? – Dustin

Répondre

1

J'ai testé le code que vous avez posté en 1.5 et cela semble fonctionner. Si vous incluez plusieurs fichiers assurez-vous que vous avez <cruisecontrol xmlns:cb="urn:ccnet.config.builder"> dans chaque fichier

Je pense que la syntaxe $() résout aussi les variables d'environnement.

+0

en essayant de faire fonctionner cela J'ai ajouté en tant que définir combiné. Quand je le change comme il est posté ci-dessus il a commencé à travailler. Je l'avais eu comme ça au début, donc je ne suis pas sûr de savoir quel était mon premier problème. – minty

0

Je sais que cela fonctionne parce que nous le faisons tout le temps. Voici un exemple de ce que nous avons dans notre fichier ccnet.config:

<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> 

    <cb:define svnPath="C:\Program Files\CollabNet Subversion\svn.exe"/>  
    <cb:define svnReposRootUrl="http://someserver/svn"/> 

    <!-- cc.net auto-updating config project --> 
    <project name="ccnet-config"> 
    <triggers> 
     <intervalTrigger seconds="30"/> 
    </triggers> 
    <sourcecontrol type="svn"> 
     <workingDirectory>C:\Program Files\CruiseControl.NET\server\config</workingDirectory> 
     <executable>$(svnPath)</executable> 
     <trunkUrl>$(svnReposRootUrl)/build/trunk/ccnet/config/XMGBUILD01</trunkUrl> 
    </sourcecontrol> 
    </project> 

</cruisecontrol> 

On ne sait pas de votre question où le cb: définir balise est par rapport à l'endroit où vous l'utilisez. J'essaierais de le mettre comme enfant de l'élément cruisecontrol. Je ne sais pas si ça peut être un enfant de quelque chose d'autre ... Je n'ai jamais essayé.

Questions connexes