Partager via


Éléments de projet MSBuild courants

Dans MSBuild, un élément est une référence nommée à une ou plusieurs chaînes, telles que des noms de fichiers. Les éléments contiennent des métadonnées telles que les noms de fichiers, les chemins d’accès et les numéros de version. Tous les types de projet dans Visual Studio ont plusieurs éléments en commun. Ces éléments sont définis dans le fichier Microsoft.Build.CommonTypes.xsd.

Cet article répertorie tous les éléments de projet courants définis dans MSBuild lui-même. Les éléments et les propriétés fournis par le Kit de développement logiciel (SDK) .NET sont documentés à l’aide de la référence MSBuild pour Microsoft.Net.Sdk.

MSBuild lui-même ne définit aucune valeur pour les métadonnées facultatives, et les métadonnées non définies sont équivalentes à une chaîne vide. Par conséquent, la valeur par défaut des métadonnées facultatives est la chaîne vide. Toutefois, les valeurs de métadonnées sont parfois définies dans les fichiers sdk qui sont implicitement importés. Les valeurs dépendent du Kit de développement logiciel (SDK) référencé.

Reference

Représente une référence d’assembly .NET (managé) dans le projet.

Nom des métadonnées d’élément Description
HintPath Chaîne facultative. Chemin d’accès relatif ou absolu de l’assembly.
Name Chaîne facultative. Nom complet de l’assembly, par exemple « System.Windows.Forms ».
FusionName Chaîne facultative. Spécifie le nom de fusion simple ou fort de l’élément.

Lorsque cet attribut est présent, il peut gagner du temps, car le fichier d’assembly n’a pas besoin d’être ouvert pour obtenir le nom de fusion.
SpecificVersion Boolean facultatif. Spécifie si seule la version du nom de fusion doit être référencée.
Aliases Chaîne facultative. Tous les alias de la référence.
Private Boolean facultatif. Spécifie si la référence doit être copiée dans le dossier de sortie. Cet attribut correspond à la propriété Copy Local de la référence qui se trouve dans l’IDE Visual Studio. La valeur par défaut est false.

Note

Le Reference type d’élément peut également être utilisé pour référencer des assemblys wrapper prégénérés pour les objets COM natifs, par exemple, si vous avez utilisé tlbimp.exe pour générer un assembly PIA (assembly d’interopérabilité primaire). Ce type de référence est un choix approprié lorsque vous souhaitez prégénérer les assemblys de wrapper COM vous-même avec des entrées connues, au lieu de compter sur l’algorithme de MSBuild pour générer des wrappers COM au moment de la génération, ce qui introduit une dépendance sur l’état du registre système sur l’ordinateur de build sur lequel MSBuild est exécuté.

COMReference

Représente une référence de composant COM (non managé) dans le projet. Cet élément est utilisé par la tâche ResolveComReference, qui génère les assemblys wrapper ou, le cas échéant EmbedInteropTypes , incorpore les types d’interopérabilité dans votre assembly. L’utilisation de ce type de référence introduit une dépendance sur le registre système sur la machine de build, qui est utilisée pour rechercher l’objet COM référencé. Les artefacts COM et les entrées COM dans le Registre peuvent changer lorsque les produits sont installés, mis à jour ou désinstallés sur l’ordinateur (ou lorsque vous exécutez la même build sur un autre ordinateur), ce qui peut produire un assembly wrapper différent même si la logique de génération n’a pas changé.

Cet élément ne s’applique pas aux projets non-.NET.

Nom des métadonnées d’élément Description
Name Chaîne facultative. Nom complet du composant.
Guid Chaîne requise. GUID du composant, sous la forme {12345678-1234-1234-1234-123456781234}.
VersionMajor Chaîne requise. Partie principale du numéro de version du composant. Par exemple, « 5 » si le numéro de version complet est « 5.46 ».
VersionMinor Chaîne requise. Partie mineure du numéro de version du composant. Par exemple, « 46 » si le numéro de version complet est « 5.46 ».
EmbedInteropTypes Boolean facultatif. Si la valeur est true, incorporez les types d’interopérabilité de cette référence directement dans votre assembly plutôt que de générer une DLL d’interopérabilité.
Lcid Chaîne facultative. LocaleID du composant.
WrapperTool Chaîne facultative. Nom de l’outil wrapper utilisé sur le composant. Les valeurs sont les suivantes :

1. principal
2. tlbimp
3. primaryortlbimp
4. aximp
Isolated Boolean facultatif. Spécifie si le composant est un composant libre d’inscription. La valeur par défaut est false.

Consultez Résoudre les problèmes liés aux références COM.

COMFileReference

Représente une liste de bibliothèques de types à référencer par chemin d’accès de fichier, au lieu d’utiliser le Registre système. Ce type de référence peut être une bonne alternative à COMReference dans les cas où vous souhaitez éviter une dépendance sur le registre de l’ordinateur de build, soit parce que le compte qui exécute la build n’a pas de privilèges élevés pour modifier le Registre sur le serveur de build, ou si vous ne souhaitez pas que la build ait une dépendance sur l’état du Registre. Si vous utilisez COMFileReference pour référencer un artefact sur un chemin d’accès système, votre build a une dépendance sur l’état du système. Si l’artefact système change en raison d’une modification de l’état du système, par exemple lorsque les produits sont installés, mis à jour ou désinstallés (ou si vous exécutez la même build sur un autre ordinateur), l’assembly wrapper peut changer, même si la logique de génération n’a pas changé. Pour garantir un résultat de build cohérent, vous pouvez mettre en cache une copie connue de l’artefact COM dans un emplacement que vous contrôlez, par exemple sous votre projet ou dossier de solution, et référencer cela au lieu de l’artefact système.

Cet élément ne s’applique pas aux projets non-.NET.

Nom des métadonnées d’élément Description
EmbedInteropTypes Boolean facultatif. Si la valeur est true, incorporez les types d’interopérabilité de cette référence directement dans votre assembly plutôt que de générer une DLL d’interopérabilité. La valeur par défaut est false.
WrapperTool Chaîne facultative. Nom de l’outil wrapper utilisé sur le composant. Les valeurs sont les suivantes :

1. principal
2. tlbimp
3. primaryortlbimp
4. aximp

Consultez Résoudre les problèmes liés aux références COM.

NativeReference

Représente un fichier manifeste natif ou une référence à ce fichier.

Nom des métadonnées d’élément Description
Name Chaîne requise. Nom de base du fichier manifeste.
HintPath Chaîne requise. Chemin d’accès relatif du fichier manifeste.

ProjectReference

Représente une référence à un autre projet. ProjectReference les éléments sont transformés en éléments de référence par la ResolveProjectReferences cible. Par conséquent, toutes les métadonnées valides sur une référence peuvent être valides ProjectReference, si le processus de transformation ne le remplace pas.

Nom des métadonnées d’élément Description
Name Chaîne facultative. Nom complet de la référence.
GlobalPropertiesToRemove string[]facultatif . Noms des propriétés à supprimer lors de la génération du projet référencé, par exemple RuntimeIdentifier;PackOnBuild. La valeur par défaut est vide.
Project Chaîne facultative. GUID de la référence, sous la forme {12345678-1234-1234-1234-123456781234}.
OutputItemType Chaîne facultative. Type d’élément dans lequel émettre des sorties cibles. La valeur par défaut est vide. Si les métadonnées de référence sont définies sur « true » (valeur par défaut), les sorties cibles deviennent des références pour le compilateur.
ReferenceOutputAssembly Boolean facultatif. S’il est défini falsesur , n’inclut pas la sortie du projet référencé en tant que référence de ce projet, mais garantit que l’autre projet est généré avant celui-ci. La valeur par défaut est true.
BuildReference Boolean facultatif. La valeur par défaut est true. Si la valeur est définie false, cette valeur ProjectReference n’est pas générée par MSBuild. Ses cibles par défaut (voir « Cibles » ci-dessous) ne seront pas appelées du tout.
Private Boolean facultatif. Spécifie si la référence doit être copiée dans le dossier de sortie. Cet attribut correspond à la propriété Copy Local de la référence qui se trouve dans l’IDE Visual Studio.
SetConfiguration Chaîne facultative. Définit la Configuration de propriété globale pour le projet référencé, par exemple Configuration=Release.
SetPlatform Chaîne facultative. Définit la Platform de propriété globale pour le projet référencé, par exemple Platform=AnyCPU.
SetTargetFramework Chaîne facultative. Définit la TargetFramework de propriété globale pour le projet référencé, par exemple TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Boolean facultatif. Si true, génère le projet référencé sans négocier la valeur TargetFramework la plus compatible. La valeur par défaut est false.
Targets string[]facultatif . Liste de cibles séparées par des points-virgules dans les projets référencés qui doivent être générés. La valeur par défaut est $(ProjectReferenceBuildTargets), qui est par défaut vide, indiquant les cibles par défaut. Lors de la génération dans Visual Studio (par opposition à MSBuild.exe ou dotnet build), la spécification n’empêche pas Visual Studio de générer les cibles par défaut du projet référencé.

Note

Il existe une différence entre le fonctionnement des références de projet entre .NET Framework et .NET Core (y compris .NET 5 et versions ultérieures). Dans les projets .NET Framework, les références de projet ne sont pas transitives. Autrement dit, si Project1 fait référence à Project2 et Project2 fait référence à Project3, vous ne pouvez pas coder par rapport à Project3 à partir de Project1. Toutefois, dans .NET Core (y compris .NET 5 et versions ultérieures), les références de projet sont transitives. Vous pouvez coder sur Project3 dans Project1.

Compile

Représente les fichiers sources du compilateur.

Nom des métadonnées d’élément Description
DependentUpon Chaîne facultative. Spécifie le fichier sur lequel ce fichier dépend de la compilation correcte.
AutoGen Boolean facultatif. Indique si le fichier a été généré pour le projet par l’environnement de développement intégré (IDE) visual Studio. La valeur par défaut est false.
Link Chaîne facultative. Chemin d’accès notation à afficher lorsque le fichier est physiquement situé en dehors de l’influence du fichier projet.
Visible Boolean facultatif. Indique s’il faut afficher le fichier dans l’Explorateur de solutions dans Visual Studio. La valeur par défaut est true.
CopyToOutputDirectory Chaîne facultative. Détermine s’il faut copier le fichier dans le répertoire de sortie. Les valeurs sont les suivantes :

1. Jamais
2. Toujours
3. PreserveNewest
4. IfDifferent

La valeur par défaut est si elle NeverDefineExplicitDefaults est définie truesur ; sinon, la chaîne vide est définie par défaut.

EmbeddedResource

Représente les ressources à incorporer dans l’assembly généré.

Nom des métadonnées d’élément Description
Culture Chaîne facultative. Spécifie la culture du fichier de ressources. Si elle est spécifiée, le processus de génération ne déduit pas automatiquement la culture en fonction de l’extension de fichier (qui dépend des cultures disponibles pour .NET/OS sur l’ordinateur hébergeant la build). La définition de métadonnées Culture={culture identifier} ou WithCulture=false est vivement recommandée.
WithCulture Bool facultatif. Spécifie que le fichier est neutre pour la culture et que la détection de culture par AssignCulture tâche doit être ignorée. La définition de métadonnées Culture={culture identifier} ou WithCulture=false est vivement recommandée.
DependentUpon Chaîne facultative. Spécifie le fichier sur lequel ce fichier dépend de la compilation correctement
Generator Chaîne facultative. Nom de n’importe quel générateur de fichiers exécuté sur cet élément.
LastGenOutput Chaîne facultative. Nom du fichier créé par n’importe quel générateur de fichiers exécuté sur cet élément.
CustomToolNamespace Chaîne facultative. Espace de noms dans lequel tout générateur de fichiers qui s’exécute sur cet élément doit créer du code.
Link Chaîne facultative. Le chemin d’accès notationnel s’affiche si le fichier est physiquement situé en dehors de l’influence du projet.
Visible Boolean facultatif. Indique s’il faut afficher le fichier dans l’Explorateur de solutions dans Visual Studio.
CopyToOutputDirectory Chaîne facultative. Détermine s’il faut copier le fichier dans le répertoire de sortie. Les valeurs sont les suivantes :

1. Jamais
2. Toujours
3. PreserveNewest
4. IfDifferent

La valeur par défaut est si elle NeverDefineExplicitDefaults est définie truesur ; sinon, la chaîne vide est définie par défaut.
LogicalName Chaîne requise. Nom logique de la ressource incorporée.

Content

Représente les fichiers qui ne sont pas compilés dans le projet, mais peuvent être incorporés ou publiés avec celui-ci.

Nom des métadonnées d’élément Description
DependentUpon Chaîne facultative. Spécifie le fichier sur lequel ce fichier dépend de la compilation correcte.
Generator Chaîne facultative. Nom de n’importe quel générateur de fichiers qui s’exécute sur cet élément.
LastGenOutput Chaîne facultative. Nom du fichier créé par n’importe quel générateur de fichiers exécuté sur cet élément.
CustomToolNamespace Chaîne facultative. Espace de noms dans lequel tout générateur de fichiers qui s’exécute sur cet élément doit créer du code.
Link Chaîne facultative. Chemin d’accès notationnel à afficher si le fichier se trouve physiquement en dehors de l’influence du projet.
PublishState Chaîne requise. État de publication du contenu, soit :

- Par défaut
-Inclus
-Exclu
-Datafile
-Prérequis
IsAssembly Boolean facultatif. Spécifie si le fichier est un assembly.
Visible Boolean facultatif. Indique s’il faut afficher le fichier dans l’Explorateur de solutions dans Visual Studio.
CopyToOutputDirectory Chaîne facultative. Détermine s’il faut copier le fichier dans le répertoire de sortie. Les valeurs sont les suivantes :

1. Jamais
2. Toujours
3. PreserveNewest
4. IfDifferent

La valeur par défaut est si elle NeverDefineExplicitDefaults est définie truesur ; sinon, la chaîne vide est définie par défaut.
TargetPath Chaîne facultative. Chemin de sortie (par rapport au répertoire de sortie spécifique à la configuration et/ou à la plateforme) d’un élément, y compris le nom de fichier. Cela respecte les métadonnées Link, le cas échéant. Si TargetPath n’est pas fourni, il est calculé pendant le processus de génération. Voir AssignTargetPath.

None

Représente les fichiers qui ne doivent pas avoir de rôle dans le processus de génération.

Nom des métadonnées d’élément Description
DependentUpon Chaîne facultative. Spécifie le fichier sur lequel ce fichier dépend de la compilation correcte.
Generator Chaîne facultative. Nom de n’importe quel générateur de fichiers exécuté sur cet élément.
LastGenOutput Chaîne facultative. Nom du fichier créé par n’importe quel générateur de fichiers exécuté sur cet élément.
CustomToolNamespace Chaîne facultative. Espace de noms dans lequel tout générateur de fichiers qui s’exécute sur cet élément doit créer du code.
Link Chaîne facultative. Chemin d’accès notationnel à afficher si le fichier se trouve physiquement en dehors de l’influence du projet.
Visible Boolean facultatif. Indique s’il faut afficher le fichier dans l’Explorateur de solutions dans Visual Studio.
CopyToOutputDirectory Chaîne facultative. Détermine s’il faut copier le fichier dans le répertoire de sortie. Les valeurs sont les suivantes :

1. Jamais
2. Toujours
3. PreserveNewest
4. IfDifferent

La valeur par défaut est si elle NeverDefineExplicitDefaults est définie truesur ; sinon, la chaîne vide est définie par défaut.

AssemblyMetadata

Représente les attributs d’assembly à générer en tant que [AssemblyMetadata(key, value)].

Nom des métadonnées d’élément Description
Include Devient le premier paramètre (la clé) dans le constructeur d’attribut AssemblyMetadataAttribute.
Value Chaîne requise. Devient le deuxième paramètre (la valeur) dans le constructeur d’attribut AssemblyMetadataAttribute.

Note

Cet élément s’applique aux projets utilisant le Kit de développement logiciel (SDK) pour .NET 5 (et .NET Core) et les versions ultérieures.

InternalsVisibleTo

Spécifie les assemblys à émettre en tant qu’attributs d’assembly [InternalsVisibleTo(..)].

Nom des métadonnées d’élément Description
Include Nom de l’assembly.
Key Chaîne facultative. Clé publique de l’assembly.

Note

Cet élément s’applique aux projets utilisant le Kit de développement logiciel (SDK) pour .NET 5 (et .NET Core) et les versions ultérieures.

BaseApplicationManifest

Représente le manifeste d’application de base de la build et contient les informations de sécurité du déploiement ClickOnce.

CodeAnalysisImport

Représente le projet FxCop à importer.

Import

Représente les assemblys dont les espaces de noms doivent être importés par le compilateur Visual Basic.

Folder

Cet élément est utilisé uniquement par Visual Studio comme espace réservé pour un dossier vide. Lorsque le dossier est rempli, il est remplacé par un autre élément.

Voir aussi