É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>