Sélectionner des fichiers dans une 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.
Spécifier les entrées
Les éléments représentent les entrées d’une build. Pour plus d’informations sur les éléments, consultez Éléments.
Pour inclure des fichiers d’une build, vous devez les ajouter à une liste d’éléments dans le fichier projet MSBuild. Plusieurs fichiers peuvent être ajoutés aux listes d’éléments : soit un à un, soit à l’aide de caractères génériques.
Pour déclarer des éléments un à un
Utilisez les attributs
Include
de la façon suivante :<CSFile Include="form1.cs"/>
ou
<VBFile Include="form1.vb"/>
Notes
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. Par exemple :
Include="..\..\form2.cs"
.
Pour déclarer plusieurs éléments
Utilisez les attributs
Include
de la façon suivante :<CSFile Include="form1.cs;form2.cs"/>
ou
<VBFile Include="form1.vb;form2.vb"/>
Spécifier les entrées avec des caractères génériques
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. Pour plus d’informations sur les caractères génériques, consultez Éléments.
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 :
Project\Images\BestJpgs
Project\Images\ImgJpgs
Project\Images\ImgJpgs\Img1
Pour inclure tous les fichiers .jpg dans le répertoire Images et ses sous-répertoires
Utilisez l’attribut
Include
suivant :Include="Images\**\*.jpg"
Pour inclure tous les fichiers .jpg commençant par img
Utilisez l’attribut
Include
suivant :Include="Images\**\img*.jpg"
Pour inclure tous les fichiers figurant dans des répertoires dont les noms se terminent par jpgs
Utilisez l’un des attributs
Include
suivants :Include="Images\**\*jpgs\*.*"
ou
Include="Images\**\*jpgs\*"
Passer des éléments à une tâche
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. Vous pouvez utiliser cette notation, que vous listiez tous les fichiers un à un ou que vous utilisiez des caractères génériques.
Pour utiliser tous les fichiers Visual C# ou Visual Basic comme entrées
Utilisez les attributs
Include
de la façon suivante :<CSC Sources="@(CSFile)">...</CSC>
ou
<VBC Sources="@(VBFile)">...</VBC>
Notes
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 MSBuild telles que Csc ou Vbc. L’exemple suivant n’est pas valide dans un fichier projet :
<CSC Sources="*.cs">...</CSC>
Exemple 1
L’exemple de code suivant affiche un projet qui inclut séparément tous les fichiers d’entrée.
<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>
Exemple 2
L’exemple de code suivant utilise un caractère générique pour inclure tous les fichiers .cs.
<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>
Contenu connexe
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour