Compartilhar via


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>

Confira também