Elemento AppliesTo (modelli di Visual Studio)
Specifica un'espressione facoltativa che corrisponde a una o più funzionalità (vedere VsProjectCapabilityExpressionMatcher). Le funzionalità vengono esposte dai tipi di progetto tramite la gerarchia come proprietà __VSHPROPID5. VSHPROPID_ProjectCapabilities. In questo modo, il modello può essere condiviso da molteplici tipi di progetto che dispongono di funzionalità applicabili comuni.
Questo elemento è facoltativo. Può essere presente massimo una istanza in un file modello. Questo elemento consente di includere come applicabile solo un modello di elemento, in base alle funzionalità del progetto attivo correntemente selezionato. Non può essere usato per rendere un modello di elemento non applicabile. Se AppliesTo
è assente o l'espressione non è inclusa correttamente, viene usato TemplateID
o TemplateGroupID
per rendere il modello applicabile, come con le versioni precedenti del prodotto.
Introdotto in Visual Studio 2013 Update 2. Per fare riferimento alla versione corretta, vedere Riferimento agli assembly recapitati in Visual Studio 2013 SDK Update 2.
<VSTemplate>
<TemplateData>
<AppliesTo>
Sintassi
<AppliesTo>Capability1</AppliesTo>
Attributi ed elementi
Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.
Attributi
Nessuno.
Elementi figlio
Nessuno.
Elementi padre
Elemento | Descrizione |
---|---|
TemplateData | Classifica il modello in base alla categoria. |
Valore di testo
È necessario specificare un valore di testo. Questo testo specifica le funzionalità del progetto.
La sintassi valida dell'espressione è definita come segue:
Espressione di funzionalità, ad esempio "(VisualC | CSharp) + (MSTest | NUnit)".
"|" è l'operatore OR.
I caratteri "&" e "+" sono entrambi operatori AND.
Il carattere "!" è l'operatore NOT.
Le parentesi forzano l'ordine di precedenza nella valutazione.
Un valore null o un'espressione vuota viene valutata come una corrispondenza.
Le funzionalità del progetto possono essere di qualsiasi carattere, ad eccezione di questi caratteri riservati: "'':;,+-*/\!~|&%$@^()={}[]<>? \t\b\n\r
Esempio
Nell'esempio seguente vengono mostrati tre diversi modelli. Template1
si applica a tutti i tipi di progetto C# o a qualsiasi altro tipo di progetto che supporta la WindowsAppContainer
funzionalità. Template2
si applica a tutti i progetti C# di qualsiasi tipo. Template3
si applica a tutti i progetti C# che non sono progetti 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>