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>