AppliesTo 元素 (Visual Studio 模板)

指定一个可选表达式以匹配一个或多个功能(请参阅 VsProjectCapabilityExpressionMatcher)。 通过层次结构以属性 __VSHPROPID5的形式通过项目类型公开功能。VSHPROPID_ProjectCapabilities。 这使得具有公共适用功能的多个项目类型可以共享此模板。

此元素为可选元素。 一个模板文件中最多只能包含一个实例。 根据当前选择的活动项目的功能,此元素仅启用一个项模板以在适用时选择使用。 此元素无法用于设置不适用的项模板。 如果缺少 AppliesTo 或表达式未成功选择使用,则 TemplateIDTemplateGroupID 将用于使模板可用,如使用产品的早期版本一样。

在 Visual Studio 2013 Update 2 中引入。 若要引用正确的版本,请参阅 Visual Studio 2013 SDK Update 2 中提供的引用程序集。

<VSTemplate>
   <TemplateData>
      <AppliesTo>

语法

<AppliesTo>Capability1</AppliesTo>

特性和元素

下列各节描述了特性、子元素和父元素。

特性

无。

子元素

无。

父元素

元素 描述
TemplateData 对模板进行分类。

文本值

需要一个文本值。 此文本指定项目的功能。

有效表达式语法按以下方式定义:

  • 功能表达式,如“(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="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>

另请参阅