Compartir a través de


Elemento AppliesTo (plantillas de Visual Studio)

Especifica una expresión opcional para que coincida con una o varias funcionalidades (consulte VsProjectCapabilityExpressionMatcher). Los tipos de proyecto exponen las funcionalidades a través de la jerarquía como una propiedad __VSHPROPID5. VSHPROPID_ProjectCapabilities. De esta manera, la plantilla se puede compartir en varios tipos de proyecto que tengan funciones aplicables comunes.

Este elemento es opcional. Puede haber un máximo de una instancia en un archivo de plantilla. Este elemento solo sirve para designar una plantilla de elemento como aplicable, de acuerdo con las funciones del proyecto activo actualmente seleccionado. No se puede utilizar para designar una plantilla de elemento como no aplicable. Si AppliesTo no está presente o la expresión no es capaz de indicar si la plantilla es aplicable, se utiliza TemplateID o TemplateGroupID para crear la plantilla aplicable, como en las versiones anteriores del producto.

Apareció por primera vez en Visual Studio 2013 Update 2. Para hacer referencia a la versión correcta, consulte Referencia a los ensamblados entregados en visual Studio 2013 SDK Update 2.

<VSTemplate>
   <TemplateData>
      <AppliesTo>

Sintaxis

<AppliesTo>Capability1</AppliesTo>

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Ninguno.

Elementos secundarios

Ninguno.

Elementos primarios

Elemento Descripción
TemplateData Clasifica la plantilla.

Valor de texto

Se requiere un valor de texto. Este texto especifica las funciones del proyecto.

La sintaxis de expresión válida se define como:

  • Expresión de funcionalidad, como "(VisualC | CSharp) + (MSTest | NUnit)".

  • "|" es el operador OR.

  • Los caracteres "&" y "+" son operadores AND.

  • El carácter “!” es el operador NOT.

  • Los paréntesis indican el orden de prioridad de la evaluación.

  • Una expresión null o vacía se evalúa como una coincidencia.

  • Las funcionalidades del proyecto pueden ser cualquier carácter excepto estos caracteres reservados: "':;,+-*/\!~|&%$@^()={}[]<>? \t\b\n\r

Ejemplo

En el ejemplo siguiente se muestran tres plantillas diferentes. Template1 se aplica a todos los tipos de proyecto de C# o a cualquier otro tipo de proyecto que admita la WindowsAppContainer funcionalidad. Template2 se aplica a todos los proyectos de C# de cualquier tipo. Template3 se aplica a los proyectos de C# que no son proyectos 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>

Consulte también