<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>CruiseControl.NET</title>
        <link>http://blogs.ugidotnet.org/rgm/category/CruiseControl.NET.aspx</link>
        <description>CruiseControl.NET</description>
        <language>it-IT</language>
        <copyright>Gian Maria  Ricci</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>I suoni per il CC.Tray</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2008/08/08/93657.aspx</link>
            <description>Il Cruise Control .NEt è veramente uno strumento che quando hai messo su la prima volta non ne puoi più fare a meno. Una delle cose che preferisco è che quando uno sviluppatore rompe la build, (ad esempio si scorda di aggiungere con tortoise i nuovi file) subito il cc.tray diventa rosso e segnala il problema. Sono quindi lontani i giorni in cui la mattina fai un update e ti trovi che la soluzione non compila, mancano file o ci sono errori e lo sviluppatore che fatto l'ultimo checkin è andato in ferie proprio quel giorno :D :D   La cosa più carina è però la possibilità di suonare un file audio se la build si rompe, dopo una piccola ricerca ho trovato in un sito questo bellissimo suono di piatti rotti :D.  Spesso quando sono in skype la gente mi dice "hey...ti si è rotto un piatto a casa?"  Naturalmente quando invece la build compila ancora è necessario sentire un bell'applauso :D.  alk.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/93657.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2008/08/08/93657.aspx</guid>
            <pubDate>Fri, 08 Aug 2008 13:51:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2008/08/08/93657.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/93657.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/93657.aspx</trackback:ping>
        </item>
        <item>
            <title>Come mi piace la gestione di siti web del vs 2005</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/04/03/74556.aspx</link>
            <description>E stamane sono 3 blog.....è strano da parte mia, ma stamane è cominiciata storta e quando comincia storta nulla va più per il verso giusto. Mi accorgo che il progetto CC.NET non compila più correttamente, vado a vedere gli errori e vedo strani errori che da me in locale non va.  Vado in terminal server nella macchina e mi accorgo che il problema è il subversion, il progetto è un sito web abbastanza grande e per problemi di performance solitamente testiamo i controlli utente in progetti più piccoli suddividendo in sezioni il progetto principale. Il problema è che le reference dei progetti web sono tenuti nella cartella bin e ankh o subversion tendono a metterli nel repository. La situazione attuale è che una dll viene aggiunta nel repository, quando il server fa update trova che la stessa dll è già nella cartella causa compilazione precedente, quindi stoppa l'update dicendo che non può prosegure.  La soluzione è stata aggiungere nello script nant una action che cancella tutte le directory bin dei progetti web prima dell'update, in questo modo l'update non fallisce...vediamo oggi cosa altro può andare storto. Alk.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/74556.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/04/03/74556.aspx</guid>
            <pubDate>Tue, 03 Apr 2007 12:34:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/04/03/74556.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/74556.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/74556.aspx</trackback:ping>
        </item>
        <item>
            <title>Cruise Control .NET - Eseguire test Nunit</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/01/18/67638.aspx</link>
            <description>In questa sesta parte si esaminerà come eseguire i test NUnit dopo la build del progetto. &lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/67638.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/01/18/67638.aspx</guid>
            <pubDate>Thu, 18 Jan 2007 19:46:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/01/18/67638.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/67638.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/67638.aspx</trackback:ping>
        </item>
        <item>
            <title>CruiseControl.NET - Riepilogo</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/01/11/65933.aspx</link>
            <description>La prossima uscita (spero oggi o cmq al massimo Sabato mattina) riguarderà NANT, e se ce la faccio anche NCOVER. Ho pensato che potrebbe essere interessant dare una riletta alla prima parte (i primi 5 post) rimetterli più in bella forma e poi pubblicarli su DotNetMarche. Mi piaceva per questo sapere quanti sarebbero interessati, perchè se alla fine a nessuno importa perchè i post sul blog sono sufficienti risparmio lavoro  &amp;nbsp; Ciao a tutti. Alk.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/65933.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/01/11/65933.aspx</guid>
            <pubDate>Thu, 11 Jan 2007 10:43:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/01/11/65933.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/65933.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/65933.aspx</trackback:ping>
        </item>
        <item>
            <title>CruiseControl.NET - Metriche di codice (FxCop)</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/01/10/65694.aspx</link>
            <description>In questo sesto intervento si inizia a capire la vera utilità di CC.NET inserendo FxCop come primo tool di metrica nella build automatica.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/65694.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/01/10/65694.aspx</guid>
            <pubDate>Wed, 10 Jan 2007 10:19:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/01/10/65694.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/65694.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/65694.aspx</trackback:ping>
        </item>
        <item>
            <title>Esempi per Cruise Control .NET</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/01/05/65202.aspx</link>
            <description>
Per rendere più concreti gli esempi che faccio per 
CC.NET potete trovare a questo indirizzo le ultime versioni degli script
http://dotnetmarche.googlecode.com/svn/trunk/Alkampfer/CCNetBlogCode
Questo è l'indirzzo del subversion di google relativo a dotnetmarche per cui è conveniente 
farne il checkout in locale con il Tortoise. Se 
qualcuno non volesse istallare il subversion fatemelo sapere, magari creo una 
versione zippata da scaricare direttamente dal sito.
Alk.


powered by IMHO 1.3&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/65202.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/01/05/65202.aspx</guid>
            <pubDate>Fri, 05 Jan 2007 19:24:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/01/05/65202.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/65202.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/65202.aspx</trackback:ping>
        </item>
        <item>
            <title>Cruise Control .NET - Copiare le build nella cartella degli artefatti</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2007/01/03/64724.aspx</link>
            <description>In questo post si conclude la prima parte sul piccolo tutorial relativo al CruiseControl.NET mostrando come copiare le ultime build nella cartella degli artefatti mantenendo nel contempo tutto lo storico delle varie build.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/64724.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2007/01/03/64724.aspx</guid>
            <pubDate>Wed, 03 Jan 2007 18:59:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2007/01/03/64724.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/64724.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/64724.aspx</trackback:ping>
        </item>
        <item>
            <title>Impostare il numero di versione del progetto</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2006/12/29/63873.aspx</link>
            <description>In questo 4° post su CruiseControl .NET verrà mostrato come generare automaticamente un nuovo numero di versione ad ogni build ed assegnarlo al progetto in maniera automatica.&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/63873.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2006/12/29/63873.aspx</guid>
            <pubDate>Fri, 29 Dec 2006 16:09:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2006/12/29/63873.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/63873.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/63873.aspx</trackback:ping>
        </item>
        <item>
            <title>Cruise Control .NET, La web dashboard</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2006/12/20/60823.aspx</link>
            <description>
So che fare due post così vicini tra loro non è 
politicamente corretto&amp;nbsp;:S comunque volevo fare un ulteriore considerazione 
sulla seconda parte delle mie impressioni su 
CC.NET.&amp;nbsp;
Se consultate la documentazione di CC.NET trovate sicuramente che nelle 
ultime versioni è stato aggiunto un task particolare per MSBuild, per cui ci si 
chiede "perchè utilizzare il nant da cui poi non facciamo altro che chiamare 
MSBuild, invece di utilizzare l'appropriato task per MSBuild??". Le mie 
ragioni personali sono le seguenti. 
In primo se utilizzo MSBuild come task, poi per coerenza lo dovrei utilizare 
anche per fare altre operazioni tipo copiare file in giro, fare test etc etc, 
per questi task è meglio Nant.
MSBuild non è presente per Visual Studio 2003, meglio quindi abituarsi ad 
utilizare il task del NANT, se abbiamo una soluzione di VS2005 utilizziamo 
MSBuild altrimenti utilizziamo il suo task &amp;lt;solution&amp;gt;. 
Stranamente l'output del WebDashboard mi sembra migliore nel caso di NANT. 
Prima di spiegare cosa è e come funziona il Dashboard, bisogna sapere che i vari 
tool producono output che deve essere preso da CC.NET per essere mostrato 
all'utente in modo da far vedere cosa sta succedendo nelle varie build. MSBuild 
non emette di suo output XML, per cui il suo output non può essere consumato da 
CC.NET che vuole solamente XML come output. Per questo sono stati fatti formatter appositi su cui potete anche trovare ulteriori informazioni. Il task risultante nel mio 
caso è questo.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;msbuild&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;executable&amp;gt;E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe&amp;lt;/executable&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;workingDirectory&amp;gt;F:\Dati\Tutorials\Tutorials\CCNET\projects\CCNetTest\WorkingFolder\TestProject1&amp;lt;/workingDirectory&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;projectFile&amp;gt;TestProject1.sln&amp;lt;/projectFile&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;buildArgs&amp;gt;/T:rebuild&amp;nbsp;/p:Configuration=Debug&amp;lt;/buildArgs&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;targets&amp;gt;Build&amp;lt;/targets&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;timeout&amp;gt;15&amp;lt;/timeout&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;logger&amp;gt;E:\Program&amp;nbsp;Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll&amp;lt;/logger&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/msbuild&amp;gt;
Come vedete ho specificato nel logger la dll che esegue la formattazione, 
nonostante quseto nel webdashboard non vedo gli warning di compilazione &amp;nbsp;&amp;nbsp;
BUILD&amp;nbsp;SUCCESSFUL&amp;nbsp;Project:&amp;nbsp;&amp;nbsp;CCNetTest&amp;nbsp;Date&amp;nbsp;of&amp;nbsp;build:&amp;nbsp;&amp;nbsp;20/12/2006&amp;nbsp;9.57.01&amp;nbsp;Running&amp;nbsp;time:&amp;nbsp;&amp;nbsp;00:00:05&amp;nbsp;Integration&amp;nbsp;Request:&amp;nbsp;&amp;nbsp;continuous&amp;nbsp;triggered&amp;nbsp;a&amp;nbsp;build&amp;nbsp;(IfModificationExists)&amp;nbsp;Last&amp;nbsp;changed:&amp;nbsp;&amp;nbsp;2006-12-20&amp;nbsp;09.56.49&amp;nbsp;Last&amp;nbsp;log&amp;nbsp;entry:&amp;nbsp;&amp;nbsp;&amp;nbsp;Modifications&amp;nbsp;since&amp;nbsp;last&amp;nbsp;build&amp;nbsp;(1)&amp;nbsp;&amp;nbsp;Modified&amp;nbsp;CCNET&amp;nbsp;/trunk/TestProject1/TestProject1/Class1.cs&amp;nbsp;&amp;nbsp;2006-12-20&amp;nbsp;09.56.49&amp;nbsp;&amp;nbsp;&amp;nbsp;
    
Se invece si lancia MSBuild internamente a NAnt, nant 
prende tutto l'output di MSBuild, lo mette in un CDATA section del suo output 
file e CC.NET riesce a trovare gli warning.
&amp;nbsp;&amp;nbsp;BUILD&amp;nbsp;SUCCESSFUL&amp;nbsp;Project:&amp;nbsp;&amp;nbsp;CCNetTest&amp;nbsp;Date&amp;nbsp;of&amp;nbsp;build:&amp;nbsp;&amp;nbsp;20/12/2006&amp;nbsp;9.59.14&amp;nbsp;Running&amp;nbsp;time:&amp;nbsp;&amp;nbsp;00:00:07&amp;nbsp;Integration&amp;nbsp;Request:&amp;nbsp;&amp;nbsp;continuous&amp;nbsp;triggered&amp;nbsp;a&amp;nbsp;build&amp;nbsp;(IfModificationExists)&amp;nbsp;Last&amp;nbsp;changed:&amp;nbsp;&amp;nbsp;2006-12-20&amp;nbsp;09.58.48&amp;nbsp;Last&amp;nbsp;log&amp;nbsp;entry:&amp;nbsp;&amp;nbsp;&amp;nbsp;Modifications&amp;nbsp;since&amp;nbsp;last&amp;nbsp;build&amp;nbsp;(1)&amp;nbsp;&amp;nbsp;Modified&amp;nbsp;CCNET&amp;nbsp;/trunk/TestProject1/TestProject1/Class1.cs&amp;nbsp;&amp;nbsp;2006-12-20&amp;nbsp;09.58.48&amp;nbsp;Warnings:&amp;nbsp;(2)&amp;nbsp;&amp;nbsp;Class1.cs(10,10):&amp;nbsp;warning&amp;nbsp;CS0219:&amp;nbsp;The&amp;nbsp;variable&amp;nbsp;'other'&amp;nbsp;is&amp;nbsp;assigned&amp;nbsp;but&amp;nbsp;its&amp;nbsp;value&amp;nbsp;is&amp;nbsp;never&amp;nbsp;usedClass1.cs(10,10):&amp;nbsp;warning&amp;nbsp;CS0219:&amp;nbsp;The&amp;nbsp;variable&amp;nbsp;'other'&amp;nbsp;is&amp;nbsp;assigned&amp;nbsp;but&amp;nbsp;its&amp;nbsp;value&amp;nbsp;is&amp;nbsp;never&amp;nbsp;used&amp;nbsp;&amp;nbsp;&amp;nbsp;
Per questa ulteriore ragione ho preferito mostrare come lanciare msbuild 
direttamente da uno script NANT.
Alk.



powered by IMHO 1.3
&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/60823.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2006/12/20/60823.aspx</guid>
            <pubDate>Wed, 20 Dec 2006 11:13:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2006/12/20/60823.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/60823.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/60823.aspx</trackback:ping>
        </item>
        <item>
            <title>Cruise Control .NET - La prima build</title>
            <link>http://blogs.ugidotnet.org/rgm/archive/2006/12/20/60820.aspx</link>
            <description>
Nella speranza che qualcuno sia interessato alle mie 
esperienze in CC.NET oggi posto subito questa seconda parte. Nella prima parte si è visto come istallare e configurare il 
CC.NET affinchè punti ad un repository subversion e faccia sempre il getlatest 
ad ogni nuova modifica. Oggi viene il momento di capire come fare un build.
LA mia esperienza personale è questa, dopo avere passato un 20 min in rete a 
documentarmi ho deciso di utilizzare Nant. Si potrebbe 
anche utilizzare MSBuild, ma purtroppo non esiste in visual studio 2003, le cui 
solution possono invece essere buildate direttamente da Nant, ed inoltre si può 
comunque lanciare MSBuild direttamente da Nant.
Passo1: la prima cosa da fare è capire come&amp;nbsp;fare il 
build di una solution&amp;nbsp;Visual&amp;nbsp;Studio 2005&amp;nbsp;con MSBuild, la riga di 
comando è questa.
msbuild 
F:\Dati\Tutorials\Tutorials\CCNET\projects\CCNetTest\WorkingFolder\TestProject1\TestProject1.sln 
/T:rebuild /p:Configuration=Debug
Come si può vedere basta specificare la solution, il parametro T con cui si 
chiede un rebuild ed infine la configurazione che in questo caso è quella di 
debug.
Passo2: Ora che sappiamo come utilizzare msbuild per 
effettuare una build bisogna capire come lanciarlo da uno script Nant. Premetto 
che non ho mai utilizzato Nant e per questo la soluzione che posto è quella che 
mi è venuta in mente per prima . Il primo passo è scaricare il Nant e mettere 
il tutto direttamente nella cartella di subversion dove sono i sorgenti. Questa 
è infatti una best practice, tenere gli strumenti di build assieme ai sorgenti. 
A questo punto bisogna creare un file di build per il nant, lo ho creato nella 
stessa cartella della solution è lo ho chiamato 
TestProject.build.
&amp;lt;?xml&amp;nbsp;version="1.0"?&amp;gt;&amp;lt;project&amp;nbsp;name="TestProject1"&amp;nbsp;default="MSBuild"&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property&amp;nbsp;name="projectdir"&amp;nbsp;value="F:\Dati\Tutorials\Tutorials\CCNET\projects\CCNetTest\WorkingFolder\TestProject1"/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;property&amp;nbsp;name="MSBuildDir"&amp;nbsp;value="E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;target&amp;nbsp;name="MSBuild"&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;exec&amp;nbsp;program="${MSBuildDir}\msbuild.exe"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;commandline="&amp;nbsp;${projectdir}\TestProject1.sln&amp;nbsp;/T:rebuild&amp;nbsp;/p:Configuration=Debug"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;basedir="."/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/target&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/project&amp;gt;
Attendo i commenti di chi conosce veramente il Nant. Una breve spiegazione la 
posso dare anche subito, un file build è un file XML con un funzionamento simile 
a quello dei makefile con cui si compilavano i programmi C/C++. Iniziamo a 
definire un nodo progetto, in cui specifichiamo il task di default. Internamente 
con il tag property si mettono delle variabili, quel tanto che basta per rendere 
lo script più comprensibile. A questo punto il tag target permette di 
specificare le attività da fare, inizialmente ne ho messa una chiamata MSBuild, 
il cui unico task è lanciare con il tag exec la compilazione tramite MSBuild. A 
questo punto bisogna testare lo script con il Nant
NAnt.exe 
-buildfile:F:\Dati\Tutorials\Tutorials\CCNET\projects\CCNetTest\WorkingFolder\TestProject1\TestProject1.build
Una volta che si è verificato che tutto è ok si può andare a modificare il 
file di configurazione principale di CC.NET aggiungendo un nuovo task.
&amp;lt;cruisecontrol&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;project&amp;nbsp;name="CCNetTest"&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...Questa&amp;nbsp;parte&amp;nbsp;è&amp;nbsp;come&amp;nbsp;nell'esempio&amp;nbsp;precedente.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;tasks&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;nant&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;executable&amp;gt;F:\Dati\Tutorials\Tutorials\CCNET\projects\CCNetTest\WorkingFolder\BuildTools\nant-0.85\bin\nant.exe&amp;lt;/executable&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;buildFile&amp;gt;F:\Dati\Tutorials\Tutorials\CCNET\projects\CCNetTest\WorkingFolder\TestProject1\TestProject1.build&amp;lt;/buildFile&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;targetList&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;target&amp;gt;MSBuild&amp;lt;/target&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/targetList&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/nant&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/tasks&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/project&amp;gt;&amp;lt;/cruisecontrol&amp;gt;
Come potete vedere si è aggiunto un nodo tasks, in cui specifichiamo un task 
di tipo nant, di seguito specifichiamo dove abbiamo messo gli eseguibili, che 
come potete vedere si trovano nel subversion assieme ai sorgenti, si specifica 
quale è il file di build ed infine si mette la lista dei target, nel nostro caso 
solamente MSBuild.
A questo punto potete provare a modificare un file sorgente, fare il check in 
e vedrete al prossimo controllo il vostro progetto automaticamente compilato. 
Con questo primo step avete il vostro primo sistema di Continuos Integration, 
anche se la vera potenza di CC.NET deve ancora essere utilizzata.
Alk.


powered by IMHO 1.3&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/60820.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gian Maria  Ricci</dc:creator>
            <guid>http://blogs.ugidotnet.org/rgm/archive/2006/12/20/60820.aspx</guid>
            <pubDate>Wed, 20 Dec 2006 10:42:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/rgm/archive/2006/12/20/60820.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/60820.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/60820.aspx</trackback:ping>
        </item>
    </channel>
</rss>