Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 600, comments - 1063, trackbacks - 82

My Links

News

Gian Maria Ricci
Mvp Logo
CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

Cruise Control .NET, La web dashboard

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.

powered by IMHO 1.3

Print | posted on mercoledì 20 dicembre 2006 10.13 | Filed Under [ CruiseControl.NET ]

Comments have been closed on this topic.

Powered by: