Elemento AppliesTo (modelos do Visual Studio)
Especifica uma expressão opcional para corresponder a um ou mais recursos (consulte VsProjectCapabilityExpressionMatcher). Os recursos são expostos por tipos de projeto por meio da hierarquia como uma propriedade __VSHPROPID5. VSHPROPID_ProjectCapabilities. Dessa maneira, o modelo pode ser compartilhado por vários tipos de projeto que têm recursos aplicáveis comuns.
Esse elemento é opcional. Pode haver um máximo de uma instância em um arquivo de modelo. Esse elemento permite que apenas um modelo de item seja aceito como aplicável, com base nos recursos do projeto ativo atualmente selecionado. Ele não pode ser usado para tornar um modelo de item não aplicável. Se AppliesTo
estiver ausente ou a expressão não for aceita com sucesso, TemplateID
ou TemplateGroupID
serão usados para tornar o modelo aplicável, como nas versões anteriores do produto.
Introduzido no Visual Studio 2013 Atualização 2. Para fazer referência à versão correta, consulte Referenciando assemblies entregues no Visual Studio 2013 SDK Update 2.
<VSTemplate>
<TemplateData>
<AppliesTo>
Syntax
<AppliesTo>Capability1</AppliesTo>
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho e elementos pai.
Atributos
Nenhum.
Elementos filho
Nenhum.
Elementos pai
Elemento | Descrição |
---|---|
TemplateData | Categoriza o modelo. |
Valor do texto
Um valor de texto é obrigatório. Esse texto especifica os recursos do projeto.
A sintaxe da expressão válida é definida como:
A expressão de capacidade, como "(VisualC | CSharp) + (MSTest | NUnit)".
O "|" é o operador OR.
Os caracteres "&" e "+" são operadores AND.
O caractere "!" é o operador NOT.
Parênteses forçam a ordem de precedência de avaliação.
Uma expressão nula ou vazia é avaliada como uma correspondência.
Os recursos do projeto podem ser qualquer caractere, exceto esses caracteres reservados: "'':;,+-*/\!~|&%$@^()={}[]<>? \t\b\n\r
Exemplo
O exemplo a seguir mostra três modelos diferentes. Template1
aplica-se a todos os tipos de projeto C# ou a qualquer outro tipo de projeto que ofereça suporte ao WindowsAppContainer
recurso. Template2
aplica-se a todos os projetos C# de qualquer tipo. Template3
aplica-se a projetos C# que não WindowsAppContainer
são projetos.
<!-- 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>