Guide pratique pour sélectionner des fichiers dans une buildHow to: Select the files to build

Quand vous générez un projet contenant plusieurs fichiers, vous pouvez lister chaque fichier un à un dans le fichier projet ou utiliser des caractères génériques pour inclure tous les fichiers d’un répertoire ou d’un ensemble imbriqué de répertoires.When you build a project that contains several files, you can list each file separately in the project file, or you can use wildcards to include all the files in one directory or a nested set of directories.

Spécifier les entréesSpecify inputs

Les éléments représentent les entrées d’une build.Items represent the inputs for a build. Pour plus d’informations sur les éléments, consultez Éléments.For more information on items, see Items.

Pour inclure des fichiers d’une build, vous devez les ajouter à une liste d’éléments dans le fichier projet MSBuildMSBuild.To include files for a build, they must be included in an item list in the MSBuildMSBuild project file. Plusieurs fichiers peuvent être ajoutés aux listes d’éléments : soit un à un, soit à l’aide de caractères génériques.Multiple files can be added to item lists by either including the files individually or using wildcards to include many files at once.

Pour déclarer des éléments un à unTo declare items individually

  • Utilisez les attributs Include de la façon suivante :Use the Include attributes similar to following:

    <CSFile Include="form1.cs"/>

    ouor

    <VBFile Include="form1.vb"/>

    Note

    Si les éléments d’une collection d’éléments ne sont pas dans le même répertoire que le fichier projet, vous devez spécifier le chemin complet ou relatif de l’élément.If items in an item collection are not in the same directory as the project file, you must specify the full or relative path to the item. Par exemple : Include="..\..\form2.cs".For example: Include="..\..\form2.cs".

Pour déclarer plusieurs élémentsTo declare multiple items

  • Utilisez les attributs Include de la façon suivante :Use the Include attributes similar to following:

    <CSFile Include="form1.cs;form2.cs"/>

    ouor

    <VBFile Include="form1.vb;form2.vb"/>

Spécifier les entrées avec des caractères génériquesSpecify inputs with wildcards

Vous pouvez aussi utiliser des caractères génériques pour inclure tous les fichiers de manière récursive ou n’inclure que certains fichiers des sous-répertoires comme entrées d’une build.You can also use wildcards to recursively include all files or only specific files from subdirectories as inputs for a build. Pour plus d’informations sur les caractères génériques, consultez Éléments.For more information about wildcards, see Items

Les exemples suivants s’appuient sur un projet qui contient des fichiers graphiques dans les répertoires et sous-répertoires suivants, avec le fichier projet situé dans le répertoire Project :The following examples are based on a project that contains graphics files in the following directories and subdirectories, with the project file located in the Project directory:

Project\Images\BestJpgsProject\Images\BestJpgs

Project\Images\ImgJpgsProject\Images\ImgJpgs

Project\Images\ImgJpgs\Img1Project\Images\ImgJpgs\Img1

Pour inclure tous les fichiers .jpg dans le répertoire Images et ses sous-répertoiresTo include all .jpg files in the Images directory and subdirectories

  • Utilisez l’attribut Include suivant :Use the following Include attribute:

    Include="Images\**\*.jpg"

Pour inclure tous les fichiers .jpg commençant par imgTo include all .jpg files starting with img

  • Utilisez l’attribut Include suivant :Use the following Include attribute:

    Include="Images\**\img*.jpg"

Pour inclure tous les fichiers figurant dans des répertoires dont les noms se terminent par jpgsTo include all files in directories with names ending in jpgs

  • Utilisez l’un des attributs Include suivants :Use one of the following Include attributes:

    Include="Images\**\*jpgs\*.*"

    ouor

    Include="Images\**\*jpgs\*"

Passer des éléments à une tâchePass items to a task

Dans un fichier projet, vous pouvez utiliser la notation @() dans les tâches pour spécifier une liste complète d’éléments comme entrée d’une build.In a project file, you can use the @() notation in tasks to specify an entire item list as the input for a build. Vous pouvez utiliser cette notation, que vous listiez tous les fichiers un à un ou que vous utilisiez des caractères génériques.You can use this notation whether you list all files separately or use wildcards.

Pour utiliser tous les fichiers Visual C# ou Visual Basic comme entréesTo use all Visual C# or Visual Basic files as inputs

  • Utilisez les attributs Include de la façon suivante :Use the Include attributes similar to the following:

    <CSC Sources="@(CSFile)">...</CSC>

    ouor

    <VBC Sources="@(VBFile)">...</VBC>

Note

Vous devez utiliser des caractères génériques avec des éléments pour spécifier les entrées d’une build ; vous ne pouvez pas spécifier les entrées à l’aide de l’attribut Sources dans les tâches MSBuildMSBuild, telles que Csc ou Vbc.You must use wildcards with items to specify the inputs for a build; you cannot specify the inputs using the Sources attribute in MSBuildMSBuild tasks such as Csc or Vbc. L’exemple suivant n’est pas valide dans un fichier projet :The following example is not valid in a project file:

<CSC Sources="*.cs">...</CSC>

ExempleExample

L’exemple de code suivant affiche un projet qui inclut séparément tous les fichiers d’entrée.The following code example shows a project that includes all of the input files separately.

<Project DefaultTargets="Compile"  
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >  
    <PropertyGroup>  
        <Builtdir>built</Builtdir>  
    </PropertyGroup>  

    <ItemGroup>  
        <CSFile Include="Form1.cs"/>  
        <CSFile Include="AssemblyInfo.cs"/>  

        <Reference Include="System.dll"/>  
        <Reference Include="System.Data.dll"/>  
        <Reference Include="System.Drawing.dll"/>  
        <Reference Include="System.Windows.Forms.dll"/>  
        <Reference Include="System.XML.dll"/>  
    </ItemGroup>  

    <Target Name="PreBuild">  
        <Exec Command="if not exist $(builtdir) md $(builtdir)"/>  
    </Target>  

    <Target Name="Compile" DependsOnTargets="PreBuild">  
        <Csc Sources="@(CSFile)"  
            References="@(Reference)"  
            OutputAssembly="$(builtdir)\$(MSBuildProjectName).exe"  
            TargetType="exe" />  
    </Target>  
</Project>  

ExempleExample

L’exemple de code suivant utilise un caractère générique pour inclure tous les fichiers .cs.The following code example uses a wildcard to include all the .cs files.

<Project DefaultTargets="Compile"  
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >  

    <PropertyGroup>  
        <builtdir>built</builtdir>  
    </PropertyGroup>  

    <ItemGroup>  
        <CSFile Include="*.cs"/>  

        <Reference Include="System.dll"/>  
        <Reference Include="System.Data.dll"/>  
        <Reference Include="System.Drawing.dll"/>  
        <Reference Include="System.Windows.Forms.dll"/>  
        <Reference Include="System.XML.dll"/>  
    </ItemGroup>  

    <Target Name="PreBuild">  
        <Exec Command="if not exist $(builtdir) md $(builtdir)"/>  
    </Target>  

    <Target Name="Compile" DependsOnTargets="PreBuild">  
        <Csc Sources="@(CSFile)"  
            References="@(Reference)"  
            OutputAssembly="$(builtdir)\$(MSBuildProjectName).exe"  
            TargetType="exe" />  
    </Target>  
</Project>  

Voir aussiSee also

Guide pratique pour exclure des fichiers de la build How to: Exclude files from the build
ÉlémentsItems