指定一个可选表达式以匹配一个或多个功能。 (请参阅 VsProjectCapabilityExpressionMatcher)。 项目类型通过层次结构将功能公开为属性 VSHPROPID_ProjectCapabilities。 这使得具有公共适用功能的多个项目类型可以共享此模板。
此元素为可选元素。 一个模板文件中最多只能包含一个实例。 根据当前选择的活动项目的功能,此元素仅启用一个项模板以在适用时选择使用。 此元素无法用于设置不适用的项模板。 如果缺少 AppliesTo 或表达式未成功选择使用,则 TemplateID 或 TemplateGroupID 将用于使模板可用,如使用产品的早期版本一样。
在 Visual Studio 2013 Update 2 中引入。 若要引用正确的版本,请参阅Referencing Assemblies Delivered in the Visual Studio 2013 SDK Update 2。
<AppliesTo>Capability1</AppliesTo>
特性和元素
下列各节描述了特性、子元素和父元素。
特性
无。
子元素
无。
父元素
元素 |
描述 |
---|---|
对模板进行分类。 |
文本值
需要一个文本值。 此文本指定项目的功能。
有效表达式语法按以下方式定义:
功能表达式,例如“(VisualC | CSharp) + (MSTest | NUnit)”。
“|”是 OR 运算符。
“&”和“+”字符均为 AND 运算符。
“!”字符是 NOT 运算符。
括号强制使用计算优先顺序。
null 或空表达式作为匹配计算。
项目功能可以是除以下保留字符以外的任何字符:"'`:;,+-*/\!~|&%$@^()={}[]<>? \t\b\n\r
示例
下面的示例演示三个不同模板。 Template1 适用于所有 C# 项目类型或支持 WindowsAppContainer 功能的任何其他项目类型。 Template2 适用于所有类型的 C# 项目。 Template3 适用于 WindowsAppContainer 项目以外的 C# 项目。
<!-- Template 1 -->
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Item" xmlns="https://schemas.microsoft.com/developer/vstemplate/2005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://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="https://schemas.microsoft.com/developer/vstemplate/2005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://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="https://schemas.microsoft.com/developer/vstemplate/2005" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<AppliesTo>CSharp_Class + (!WindowsAppContainer)</AppliesTo>
</TemplateData>
</VSTemplate>