So che fare due post così vicini tra loro non è 
politicamente corretto :S comunque volevo fare un ulteriore considerazione 
sulla seconda parte delle mie impressioni su 
CC.NET. 
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 <solution>. 
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.
      <msbuild>
        <executable>E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
        <workingDirectory>F:\Dati\Tutorials\Tutorials\CCNET\projects\CCNetTest\WorkingFolder\TestProject1</workingDirectory>
        <projectFile>TestProject1.sln</projectFile>
        <buildArgs>/T:rebuild /p:Configuration=Debug</buildArgs>
        <targets>Build</targets>
        <timeout>15</timeout>
        <logger>E:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
      </msbuild>
Come vedete ho specificato nel logger la dll che esegue la formattazione, 
nonostante quseto nel webdashboard non vedo gli warning di compilazione 
  
BUILD SUCCESSFUL 
Project:  CCNetTest 
Date of build:  20/12/2006 9.57.01 
Running time:  00:00:05 
Integration Request:  continuous triggered a build (IfModificationExists) 
Last changed:  2006-12-20 09.56.49 
Last log entry:  
 
Modifications since last build (1)  
Modified CCNET /trunk/TestProject1/TestProject1/Class1.cs  2006-12-20 09.56.49 
 
 
    
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.
  BUILD SUCCESSFUL 
Project:  CCNetTest 
Date of build:  20/12/2006 9.59.14 
Running time:  00:00:07 
Integration Request:  continuous triggered a build (IfModificationExists) 
Last changed:  2006-12-20 09.58.48 
Last log entry:  
 
Modifications since last build (1)  
Modified CCNET /trunk/TestProject1/TestProject1/Class1.cs  2006-12-20 09.58.48 
Warnings: (2)  
Class1.cs(10,10): warning CS0219: The variable 'other' is assigned but its value is never used
Class1.cs(10,10): warning CS0219: The variable 'other' is assigned but its value is never used
 
 
 
Per questa ulteriore ragione ho preferito mostrare come lanciare msbuild 
direttamente da uno script NANT.
Alk.