Comment : nettoyer une générationHow to: Clean a Build

Quand vous nettoyez une build, tous les fichiers intermédiaires et de sortie sont supprimés ; seuls les fichiers projet et de composants sont conservés.When you clean a build, all intermediate and output files are deleted, leaving only the project and component files. De nouvelles instances des fichiers intermédiaires et de sortie peuvent alors être générées à partir des fichiers projet et de composants.From the project and component files, new instances of the intermediate and output files can then be built. La bibliothèque de tâches courantes qui est fournie avec MSBuildMSBuild inclut une tâche Exec que vous pouvez utiliser pour exécuter des commandes système.The library of common tasks that is provided with MSBuildMSBuild includes an Exec task that you can use to run system commands. Pour plus d’informations sur la bibliothèque de tâches, consultez Informations de référence sur les tâches.For more information on the library of tasks, see Task Reference.

Création d’un répertoire pour les éléments de sortieCreating a Directory for Output Items

Par défaut, le fichier .exe qui est créé quand vous compilez un projet est placé dans le même répertoire que les fichiers projet et les fichiers sources.By default, the .exe file that is created when you compile a project is placed in the same directory as the project and source files. En général, les éléments de sortie sont cependant créés dans un répertoire distinct.Typically, however, output items are created in a separate directory.

Pour créer un répertoire pour les éléments de sortieTo create a directory for output items

  1. Utilisez l’élément Property pour définir l’emplacement et le nom du répertoire.Use the Property element to define the location and name of the directory. Par exemple, créez un répertoire nommé BuiltApp dans le répertoire qui contient les fichiers projet et les fichiers sources :For example, create a directory named BuiltApp in the directory that contains the project and source files:

    <builtdir>BuiltApp</builtdir>

  2. Utilisez la tâche MakeDir pour créer le répertoire s’il n’existe pas.Use the MakeDir task to create the directory if the directory does not exist. Exemple :For example:

    <MakeDir Directories = "$(builtdir)"

    Condition = "!Exists('$(builtdir)')" />

Suppression des éléments de sortieRemoving the Output Items

Avant de créer de nouvelles instances des fichiers intermédiaires et de sortie, vous pouvez si nécessaire effacer toutes les instances précédentes de ces fichiers.Prior to creating new instances of intermediate and output files, you may want to clear all previous instances of intermediate and output files. Utilisez la tâche RemoveDir pour supprimer d’un disque un répertoire, ainsi que tous les fichiers et répertoires qu’il contient.Use the RemoveDir task to delete a directory and all files and directories that it contains from a disk.

Pour supprimer un répertoire et tous les fichiers contenus dans le répertoireTo remove a directory and all files contained in the directory

  • Utilisez la tâche RemoveDir pour supprimer le répertoire.Use the RemoveDir task to remove the directory. Exemple :For example:

    <RemoveDir Directories="$(builtdir)" />

ExempleExample

L’exemple de projet de code suivant contient une nouvelle cible Clean, qui utilise la tâche RemoveDir pour supprimer un répertoire, ainsi que tous les fichiers et répertoires qu’il contient.The following code example project contains a new target, Clean, that uses the RemoveDir task to delete a directory and all files and directories that it contains. De plus, dans cet exemple, la cible Compile crée un répertoire distinct pour les éléments de sortie qui sont supprimés quand la build est nettoyée.Also in this example, the Compile target creates a separate directory for the output items that are deleted when the build is cleaned.

Compile est défini comme cible par défaut et est donc utilisée automatiquement, sauf si vous spécifiez une ou plusieurs cibles différentes.Compile is defined as the default target and is therefore used automatically unless you specify a different target or targets. Vous utilisez le commutateur de ligne de commande /target pour spécifier une autre cible.You use the command line switch /target to specify a different target. Exemple :For example:

msbuild <file name>.proj /target:Clean

Le commutateur /target peut être abrégé en /t et vous pouvez spécifier plusieurs cibles.The /target switch can be shortened to /t and can specify more than one target. Par exemple, pour utiliser la cible Clean, puis la cible Compile, tapez :For example, to use the target Clean then the target Compile, type:

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>  

Voir aussiSee Also

Exec, tâche Exec Task
MakeDir, tâche MakeDir Task
RemoveDir, tâche RemoveDir Task
Tâche Csc Csc Task
CiblesTargets