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.

Reference

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

Nom des métadonnées d’élément Descriptif
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 Boolean facultatif. Spécifie si seule la version du nom de fusion doit être référencée.
Alias Chaîne facultative. Tous les alias de la référence.
Privé 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.

Remarque

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 Descriptif
Nom Chaîne facultative. Nom complet du composant.
Guide 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
Isolé Boolean facultatif. Spécifie si le composant est un composant libre d’inscription.

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 Descriptif
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é.
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

NativeReference

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

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

Référence de projet

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 Descriptif
Nom 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.
Projet 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.
Privé 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.
Cibles 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é.

Remarque

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.

Compiler

Représente les fichiers sources du compilateur.

Nom des métadonnées d’élément Descriptif
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.
Lien 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.
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

EmbeddedResource

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

Nom des métadonnées d’élément Descriptif
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
Générateur 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.
Lien 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
LogicalName Chaîne requise. 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 d’élément Descriptif
DependentUpon Chaîne facultative. Spécifie le fichier sur lequel ce fichier dépend de la compilation correcte.
Générateur 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.
Lien 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 :

-Faire 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
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.

Aucun

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 Descriptif
DependentUpon Chaîne facultative. Spécifie le fichier sur lequel ce fichier dépend de la compilation correcte.
Générateur 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.
Lien 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

AssemblyMetadata

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

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

Remarque

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.

InterneVisibleTo

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

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

Remarque

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.

Importation

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