Pulire una compilazione
Quando si esegue la pulitura di una compilazione, vengono eliminati tutti i file intermedi e di output, lasciando solo i file di progetto e di componente. È quindi possibile compilare nuove istanze di file intermedi e di output dai file di progetto e di componente.
Creare una directory per gli elementi di output
Per impostazione predefinita, il file con estensione exe creato quando si compila un progetto viene inserito nella stessa directory dei file di progetto e di origine. Gli elementi di output invece vengono in genere creati in una directory distinta.
Per creare una directory per gli elementi di output
Usare l'elemento
Property
per definire il percorso e il nome della directory. Ad esempio, creare una directory denominata BuiltApp nella directory che contiene i file di progetto e di origine:<builtdir>BuiltApp</builtdir>
Usare l'attività MakeDir per creare la directory se la directory non esiste. Ad esempio:
<MakeDir Directories = "$(builtdir)" Condition = "!Exists('$(builtdir)')" />
Rimuovere gli elementi di output
Prima di creare nuove istanze dei file intermedi e di output, è possibile cancellare tutte le istanze precedenti dei file intermedi e di output. Usare l'attività RemoveDir per eliminare una directory e tutti i file e le directory in essa contenuti da un disco.
Per rimuovere una directory e tutti i file contenuti nella directory
Usare l'attività
RemoveDir
per rimuovere la directory. Ad esempio:<RemoveDir Directories="$(builtdir)" />
Esempio
Il progetto di esempio di codice seguente contiene una nuova destinazione, Clean
, che usa l'attività RemoveDir
per eliminare una directory e tutti i file e le directory in essa contenute. Anche in questo esempio, la destinazione Compile
crea una directory distinta per gli elementi di output che vengono eliminati durante la pulizia della compilazione.
Compile
è definito come destinazione predefinita che viene usata automaticamente se non vengono specificate una o più destinazioni diverse. Usare l'opzione della riga di comando -target per specificare una destinazione diversa. Ad esempio:
msbuild <file name>.proj -target:Clean
L'opzione -target può essere abbreviata in -t e può specificare più di una destinazione. Ad esempio, per usare la destinazione Clean
e quindi la destinazione Compile
, digitare:
msbuild <file name>.proj -t:Clean;Compile
<Project DefaultTargets = "Compile"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
<!-- Set the application name as a property -->
<name>HelloWorldCS</name>
<!-- Set the output folder as a property -->
<builtdir>BuiltApp</builtdir>
</PropertyGroup>
<ItemGroup>
<!-- Specify the inputs by type and file name -->
<CSFile Include = "consolehwcs1.cs"/>
</ItemGroup>
<Target Name = "Compile">
<!-- Check whether an output folder exists and create
one if necessary -->
<MakeDir Directories = "$(builtdir)"
Condition = "!Exists('$(builtdir)')" />
<!-- Run the Visual C# compiler -->
<CSC Sources = "@(CSFile)"
OutputAssembly = "$(BuiltDir)\$(appname).exe">
<Output TaskParameter = "OutputAssembly"
ItemName = "EXEFile" />
</CSC>
<!-- Log the file name of the output file -->
<Message Text="The output file is @(EXEFile)"/>
</Target>
<Target Name = "Clean">
<RemoveDir Directories="$(builtdir)" />
</Target>
</Project>