Partager via


Élément AppliesTo (modèles Visual Studio)

Spécifie une expression facultative pour qu’elle corresponde à une ou plusieurs fonctionnalités (voir VsProjectCapabilityExpressionMatcher). Les fonctionnalités sont exposées par les types de projet via la hiérarchie en tant que propriété __VSHPROPID5. VSHPROPID_ProjectCapabilities. De cette manière, le modèle peut être partagé par plusieurs types de projets ayant des capacités applicables communes.

Cet élément est facultatif. Il peut y avoir au maximum une instance dans un fichier modèle. Cet élément permet uniquement à un modèle d'élément d'être déclaré comme applicable, en fonction des fonctionnalités du projet actif sélectionné. Il ne peut pas être utilisé pour rendre un modèle d'élément non applicable. Si AppliesTo est absent ou si l'expression ne permet pas de déclarer correctement, alors TemplateID ou TemplateGroupID est utilisé pour rendre le modèle applicable, comme avec les versions antérieures du produit.

Introduit pour la première fois dans Visual Studio 2013 Update 2. Pour référencer la version correcte, consultez Référencer les assemblys remis dans le Kit de développement logiciel (SDK) Visual Studio 2013 Update 2.

<VSTemplate>
   <TemplateData>
      <AppliesTo>

Syntaxe

<AppliesTo>Capability1</AppliesTo>

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Aucune.

Éléments enfants

Aucune.

Éléments parents

Élément Description
TemplateData Définit la catégorie du modèle.

Valeur texte

Une valeur texte est requise. Ce texte spécifie les fonctionnalités du projet.

La syntaxe d'expression valide est définie comme suit :

  • Expression de capacité, telle que « (VisualC | CSharp) + (MSTest | NUnit) ».

  • L’opérateur « | » est l’opérateur OR.

  • Les caractères « & » et « + » sont les deux opérateurs AND.

  • Le caractère « ! » est l'opérateur NOT.

  • Les parenthèses forcent l'ordre de priorité de l'évaluation.

  • Une expression null ou vide est évaluée comme une correspondance.

  • Les fonctionnalités du projet peuvent être n’importe quel caractère, à l’exception de ces caractères réservés : « ' :;,+-*/\ !~|&%$@^()={}[]<> ? \t\b\n\r

Exemple

L'exemple suivant indique trois modèles différents. Template1 s’applique à tous les types de projet C# ou à tout autre type de projet qui prend en charge la WindowsAppContainer fonctionnalité. Template2 s’applique à tous les projets C# de tout type. Template3 s'applique aux projets C# qui ne sont pas des projets WindowsAppContainer.

<!--  Template 1 -->
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/developer/vstemplate/2005">
    <TemplateData>
        <AppliesTo>CSharp | WindowsAppContainer</AppliesTo>
    </TemplateData>
</VSTemplate>

<!--  Template 2 -->
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/developer/vstemplate/2005">
    <TemplateData>
        <AppliesTo>CSharp</AppliesTo>
    </TemplateData>
</VSTemplate>

<!--  Template 1 -->
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/developer/vstemplate/2005">
    <TemplateData>
        <AppliesTo>CSharp_Class + (!WindowsAppContainer)</AppliesTo>
    </TemplateData>
</VSTemplate>

Voir aussi