Éléments communs des projets MSBuild

Dans MSBuild, un élément est une référence nommée à un ou plusieurs fichiers. Les éléments contiennent des métadonnées, comme des noms de fichiers, des chemins et des numéros de version. Dans Visual Studio, tous les types de projets ont plusieurs éléments en commun. Ces éléments sont définis dans le fichier Microsoft.Build.CommonTypes.xsd.

Cet article liste tous les éléments de projet courants.

Informations de référence

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

Nom des métadonnées de l’élément Description
HintPath Chaîne facultative. Chemin d'accès relatif ou absolu de l'assembly.
Nom 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 Valeur booléenne facultative. Indique si seule la version figurant dans le nom de fusion doit être référencée.
Alias Chaîne facultative. Alias éventuels de la référence.
Privées Valeur booléenne facultative. Indique si la référence doit être copiée dans le dossier de sortie. Cet attribut correspond à la propriété Copie locale de la référence qui se trouve dans l’IDE Visual Studio.

COMReference

Représente une référence de composant (non managé) COM dans le projet. Cet élément s’applique uniquement aux projets .NET.

Nom des métadonnées de l’élément Description
Nom Chaîne facultative. Nom complet du composant.
Guid Chaîne obligatoire. GUID du composant sous la forme {12345678-1234-1234-1234-123456781234}.
VersionMajor Chaîne obligatoire. 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 obligatoire. Partie secondaire du numéro de version du composant. Par exemple, « 46 » si le numéro de version complet est « 5.46 ».
EmbedInteropTypes Valeur booléenne facultative. Si true, incorporez les types interop de cette référence directement dans votre assembly au lieu de générer une DLL interop.
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. primary
2. tlbimp
3. primaryortlbimp
4. aximp
Isolé Valeur booléenne facultative. Indique si le composant est un composant sans inscription.

COMFileReference

Représente une liste de bibliothèques de types qui sont passées au paramètre TypeLibFiles de la cible ResolveComReference. Cet élément s’applique uniquement aux projets .NET.

Nom des métadonnées de l’élément Description
WrapperTool Chaîne facultative. Nom de l’outil wrapper utilisé sur le composant. Les valeurs sont les suivantes :

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

NativeReference

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

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

ProjectReference

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

Nom des métadonnées de l’élément Description
Nom Chaîne facultative. Nom complet de la référence.
GlobalPropertiesToRemove string[] optionnel. Noms des propriétés à supprimer lors de la génération du projet référencé, par exemple RuntimeIdentifier;PackOnBuild. Vide par défaut.
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 Valeur booléenne facultative. 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.
Privées Valeur booléenne facultative. Indique si la référence doit être copiée dans le dossier de sortie. Cet attribut correspond à la propriété Copie locale de la référence qui se trouve dans l’IDE Visual Studio.
SetConfiguration Chaîne facultative. Définit la propriété globale Configuration pour le projet référencé, par exemple Configuration=Release.
SetPlatform Chaîne facultative. Définit la propriété globale Platform pour le projet référencé, par exemple Platform=AnyCPU.
SetTargetFramework Chaîne facultative. Définit la propriété globale TargetFramework pour le projet référencé, par exemple TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Valeur booléenne facultative. 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[] optionnel. Liste de cibles séparées par des points-virgules dans les projets référencés qui doivent être générées. La valeur $(ProjectReferenceBuildTargets)par défaut est , 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é.

Remarque

Il existe une différence entre le fonctionnement des références de projet dans le .NET Framework et dans .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 Projet1 fait référence à Projet2 et que Projet2 fait référence à Projet3, vous ne pouvez pas coder sur Projet3 à partir de Projet1. Toutefois, dans .NET Core (y compris .NET 5 et versions ultérieures), les références de projet sont transitives. Vous pouvez coder sur Projet3 dans Projet1.

Compiler

Représente les fichiers sources du compilateur.

Nom des métadonnées de l’élément Description
DependentUpon Chaîne facultative. Spécifie le fichier dont dépend ce fichier pour une compilation correcte.
AutoGen Valeur booléenne facultative. Indique si le fichier a été généré pour le projet par l’environnement de développement intégré (IDE) Visual Studio.
Lien Chaîne facultative. Chemin d’accès codifiable à afficher quand le fichier se trouve physiquement en dehors de l’influence du fichier projet.
Visible Valeur booléenne facultative. Indique si le fichier doit être affiché dans l’Explorateur de solutions de Visual Studio.
CopyToOutputDirectory Chaîne facultative. Détermine si le fichier doit être copié dans le répertoire de sortie. Les valeurs sont les suivantes :

1. Never
2. Always
3. PreserveNewest

EmbeddedResource

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

Nom des métadonnées de l’élément Description
DependentUpon Chaîne facultative. Spécifie le fichier dont dépend ce fichier pour une compilation correcte.
Générateur Chaîne facultative. Nom du générateur de fichier exécuté sur cet élément.
LastGenOutput Chaîne facultative. Nom du fichier créé par le générateur de fichier qui a été exécuté sur cet élément.
CustomToolNamespace Chaîne facultative. Espace de noms dans lequel le générateur de fichier s'exécutant sur cet élément doit créer du code.
Lien Chaîne facultative. Le chemin d’accès codifiable s’affiche si le fichier se trouve physiquement en dehors de l’influence du projet.
Visible Valeur booléenne facultative. Indique si le fichier doit être affiché dans l’Explorateur de solutions de Visual Studio.
CopyToOutputDirectory Chaîne facultative. Détermine si le fichier doit être copié dans le répertoire de sortie. Les valeurs sont les suivantes :

1. Never
2. Always
3. PreserveNewest
LogicalName Chaîne obligatoire. Nom logique de la ressource incorporée.

Contenu

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 de l’élément Description
DependentUpon Chaîne facultative. Spécifie le fichier dont dépend ce fichier pour une compilation correcte.
Générateur Chaîne facultative. Nom du générateur de fichier qui s'exécute sur cet élément.
LastGenOutput Chaîne facultative. Nom du fichier créé par le générateur de fichier qui a été exécuté sur cet élément.
CustomToolNamespace Chaîne facultative. Espace de noms dans lequel le générateur de fichier s'exécutant sur cet élément doit créer du code.
Lien Chaîne facultative. Chemin d'accès codifiable à afficher si le fichier se trouve physiquement en dehors de l'influence du projet.
PublishState Chaîne obligatoire. État de publication du contenu, à savoir :

- Default
- Included
- Excluded
- DataFile
- Prerequisite
IsAssembly Valeur booléenne facultative. Indique si le fichier est un assembly.
Visible Valeur booléenne facultative. Indique si le fichier doit être affiché dans l’Explorateur de solutions de Visual Studio.
CopyToOutputDirectory Chaîne facultative. Détermine si le fichier doit être copié dans le répertoire de sortie. Les valeurs sont les suivantes :

1. Never
2. Always
3. PreserveNewest
TargetPath Chaîne facultative. Chemin de sortie (relatif au répertoire de sortie propre à la configuration et/ou à la plateforme) d’un élément, y compris le nom de fichier. Cela respecte les métadonnées Link, si elles sont fournies. Si TargetPath n’est pas fourni, il est calculé pendant le processus de génération. Consultez AssignTargetPath.

Aucun

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

Nom des métadonnées de l’élément Description
DependentUpon Chaîne facultative. Spécifie le fichier dont dépend ce fichier pour une compilation correcte.
Générateur Chaîne facultative. Nom du générateur de fichier exécuté sur cet élément.
LastGenOutput Chaîne facultative. Nom du fichier créé par le générateur de fichier qui a été exécuté sur cet élément.
CustomToolNamespace Chaîne facultative. Espace de noms dans lequel le générateur de fichier s'exécutant sur cet élément doit créer du code.
Lien Chaîne facultative. Chemin d'accès codifiable à afficher si le fichier se trouve physiquement en dehors de l'influence du projet.
Visible Valeur booléenne facultative. Indique si le fichier doit être affiché dans l’Explorateur de solutions de Visual Studio.
CopyToOutputDirectory Chaîne facultative. Détermine si le fichier doit être copié dans le répertoire de sortie. Les valeurs sont les suivantes :

1. Never
2. Always
3. PreserveNewest

AssemblyMetadata

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

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

Notes

Cet élément s’applique aux projets qui utilisent le Kit SDK pour .NET 5 (et .NET Core) et versions ultérieures.

InternalsVisibleTo

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

Nom des métadonnées de l’élément Description
Inclure Nom de l'assembly.
Clé Chaîne facultative. Clé publique de l’assembly.

Notes

Cet élément s’applique aux projets qui utilisent le Kit SDK pour .NET 5 (et .NET Core) et versions ultérieures.

BaseApplicationManifest

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

CodeAnalysisImport

Représente le projet FxCop à importer.

Importer

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

Dossier

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