Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Importe le contenu d’un fichier projet dans un autre fichier projet.
<Importation de projet><>
Syntaxe
<Import Project="ProjectPath"
Condition="'String A'=='String B'" />
Attributs et éléments
Les sections suivantes décrivent les attributs, les éléments enfants et les éléments parents.
Attributes
| Caractéristique | Descriptif |
|---|---|
Project |
Attribut obligatoire. Chemin d’accès du fichier projet à importer. Le chemin d’accès peut inclure des caractères génériques. Les fichiers correspondants sont importés dans l’ordre trié. À l’aide de cette fonctionnalité, vous pouvez ajouter du code à un projet simplement en ajoutant le fichier de code à un répertoire. |
Condition |
Attribut facultatif. Condition à évaluer. Pour plus d’informations, consultez Conditions. |
Label |
Attribut facultatif. Applique un identificateur à cet élément d’importation. |
Sdk |
Attribut facultatif. Fait référence à un kit SDK de projet. |
Éléments enfants
Aucun
Éléments parents
| Élément | Descriptif |
|---|---|
| Projet | Élément racine requis d’un fichier projet MSBuild. |
| ImportGroup | Contient une collection d’éléments Import regroupés sous une condition facultative. |
Remarques
À l’aide de l’élément, vous pouvez réutiliser du Import code commun à de nombreux fichiers projet. L’utilisation des importations facilite la maintenance du code, car toutes les mises à jour apportées au code partagé sont propagées à tous les projets qui l’importent.
Par convention, les fichiers projet importés partagés sont enregistrés en tant que .targets fichiers, mais ils sont des fichiers projet MSBuild standard. MSBuild n’empêche pas d’importer un projet qui a une autre extension de nom de fichier, mais nous vous recommandons d’utiliser l’extension .targets pour la cohérence.
Les chemins relatifs dans les projets importés sont interprétés par rapport au répertoire du projet d’importation (avec quelques exceptions décrites plus loin dans ce paragraphe). Par conséquent, si un fichier projet est importé dans plusieurs fichiers projet à différents emplacements, les chemins relatifs du fichier projet importé sont interprétés différemment pour chaque projet importé. Il existe deux exceptions. Une exception est que dans les Import éléments, le chemin d’accès est toujours interprété par rapport au projet qui contient l’élément Import . Une autre exception est que le UsingTask chemin d’accès relatif de l’attribut AssemblyFile est toujours interprété par rapport au fichier qui contient l’élément UsingTask .
Toutes les propriétés réservées MSBuild qui concernent le fichier projet référencé dans un projet importé (par exemple MSBuildProjectDirectory , et MSBuildProjectFile) sont affectées à des valeurs basées sur le fichier projet d’importation.
Si le projet importé n’a pas d’attribut DefaultTargets , les projets importés sont inspectés dans l’ordre dans lequel ils sont importés et la valeur du premier attribut découvert DefaultTargets est utilisée. Par exemple, si ProjectA importe ProjectB et ProjectC (dans cet ordre) et ProjectB importe ProjectD, MSBuild recherche d’abord DefaultTargets les éléments spécifiés sur ProjectA, ProjectB, ProjectD et Enfin ProjectC.
Le schéma d’un projet importé est identique à celui d’un projet standard. Bien que MSBuild puisse générer un projet importé, il est peu probable qu’un projet importé ne contienne généralement pas d’informations sur les propriétés à définir ou l’ordre dans lequel exécuter des cibles. Le projet importé dépend du projet dans lequel il est importé pour fournir ces informations.
Caractères génériques
MSBuild autorise les caractères génériques dans l’attribut Project. Lorsqu’il existe des caractères génériques, toutes les correspondances trouvées sont triées (pour la reproductibilité), puis elles sont importées dans cet ordre comme si l’ordre avait été défini explicitement.
Cela est utile si vous souhaitez offrir un point d’extensibilité afin que quelqu’un d’autre puisse importer un fichier sans vous obliger à ajouter explicitement le nom de fichier au fichier d’importation. À cet effet, Microsoft.Common.Targets contient la ligne suivante en haut du fichier.
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftCommonTargets)' == 'true' and exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore')"/>
Example
L’exemple suivant montre un projet qui a plusieurs éléments et propriétés et importe un fichier projet général.
<Project DefaultTargets="Compile">
<PropertyGroup>
<resourcefile>Strings.resx</resourcefile>
<compiledresources>
$(O)\$(MSBuildProjectName).Strings.resources
</compiledresources>
</PropertyGroup>
<ItemGroup>
<CSFile Include="*.cs" />
<Reference Include="System" />
<Reference Include="System.Data" />
</ItemGroup>
<Import Project="$(CommonLocation)\General.targets" />
</Project>