Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Il primo script

Il primo semplice file '.build', per compilare una applicazione windows
Il primo semplice file '.build', per compilare una applicazione windows
Link copiato negli appunti

Uno script Nant è un file XML composto da una serie di target, che rappresentano le azioni da eseguire.

Il principio è molto simile alla classica utility make, cui i programmatori C++ sono abituati da decenni, solo che in questo caso la sintassi è quella di un file XML. Abbiamo detto che è sempre bene iniziare da esempi minimali, i primi script che esaminiamo hanno come unico scopo il compilare una applicazione windows composta da un singola maschera.

Il nome dello script può essere qualsiasi, ma per convenzione si utilizza l'estensione .build e Nant, se non si specificano altri argomenti, cerca nella cartella corrente uno script che si chiama default.build, per questa ragione la quasi totalità degli script che si trova in rete ha questo nome.

Per creare uno script possiamo impiegare qualsiasi editor XML, compreso Visual Studio: in questo caso possiamo ottenere l'aiuto dell'Intellisense, copiando il file nant.xsd, (presente nella sottocartella schema del percorso di istallazione di nant) nella cartella:

C:Program FilesMicrosoft Visual Studio 9.0XmlSchemas

Un altro strumento di grande aiuto è il resharper della jetbrains, che supporta nativamente la stesura di un file di build, riconoscendone i target e le proprietà.

Figura 4. Scrivere un file build con Intellisense
Scrivere un file build  con Intellisense

Grazie all'intellisense abbiamo un notevole aiuto: Nant presenta infatti molte opzioni in cui è facile perdersi ed avere una lista dei task disponibili e delle loro proprietà è praticamente indispensabile. Il primo esempio, consiste nella semplice compilazione di una winform i cui sorgenti si trovano nella sottocartella TestApp1.

Aprendo il file default.build troviamo:

<?xml version="1.0" encoding='iso-8859-1' ?>
<project
  name="TestApp1"
  xmlns="http://nant.sf.net/nightly/2009-01-30-0.86/nant.xsd">
  
  <csc target="winexe"
       debug="Enable"
       optimize="false"
       warnaserror="false"
       output="Artifacts/Builds/MyTestApp1.exe"
       doc="Artifacts/Builds/MyTestApp1.xml"
       rebuild="true">

    <sources>
      <include name="TestApp1/Form1.cs"/>
      <include name="TestApp1/Form1.Designer.cs"/>
      <include name="TestApp1/Program.cs"/>
      <include name="TestApp1/Properties/AssemblyInfo.cs"/>
      <include name="TestApp1/Properties/Resources.Designer.cs"/>
      <include name="TestApp1/Properties/Settings.Designer.cs"/>
    </sources>

   </csc>
</project>

Il file contiene un nodo root chiamato <project> all'interno del quale è immediatamente contenuto l'unico task da eseguire, il <csc>, usato per invocare il compilatore C# (csc.exe).

Ogni task è poi configurabile tramite attributi o nodi interni, i primi sono usati per proprietà semplici, mentre i secondi sono usati per proprietà composte. In questo caso le proprietà come target, debug, optimize, etc, sono espresse come attributi, mentre la proprietà <sources> , che indica la lista dei file da compilare, viene inserita come nodo figlio del task a cui si riferisce.

Soprattutto agli inizi è decisamente consigliabile tenere sempre a disposizione l'help dei vari task, in modo da poterne controllare le varie opzioni. La lista completa di tutti i task si può trovare online oltre che in versione html nella cartella di documentazione che si scarica con l'eseguibile.

Questo primo script non ha bisogno di ulteriori spiegazioni, i parametri del task <csc> si spiegano praticamente da soli.

Nant permette di gestire tutte le opzioni del compilatore, nel secondo esempio si è aggiunto un file di risorse al progetto. L'unica differenza del file di build è l'opzione <resources> aggiunta al task <csc>:

<resources dynamicprefix="true" >
  <include name="TestApp1/Properties/Resources.resx"/>
  <include name="TestApp1/Form1.resx"/>
</resources>

Grazie a Nant è quindi possibile gestire ogni dettaglio della compilazione.

Ti consigliamo anche