Поделиться через


Элемент AppliesTo (шаблоны Visual Studio)

Указывает необязательное выражение для сопоставления одной или нескольких возможностей (см. раздел VsProjectCapabilityExpressionMatcher). Возможности предоставляются типами проектов через иерархию как свойство __VSHPROPID5. VSHPROPID_ProjectCapabilities. Таким образом шаблон может использоваться в нескольких типах проектов, имеющих общие применимые возможности.

Этот элемент является необязательным. В файле шаблона может быть не более одного экземпляра этого элемента. Этот элемент позволяет шаблону элемента быть применимым на основании возможностей выбранного в данный момент активного проекта. Его нельзя использовать, чтобы создать шаблон элемента неприменимым. Если AppliesTo отсутствует или выражение не проходит проверку применимости, TemplateID или TemplateGroupID используются, чтобы сделать шаблон применимым, как в предыдущих версиях продукта.

Представлено в обновлении 2 для Visual Studio 2013. Чтобы сослаться на правильную версию, см. статью "Ссылки на сборки", предоставляемые в пакете SDK для Visual Studio 2013 с обновлением 2.

<VSTemplate>
   <TemplateData>
      <AppliesTo>

Синтаксис

<AppliesTo>Capability1</AppliesTo>

Элементы и атрибуты

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Нет.

Дочерние элементы

Нет.

Родительские элементы

Элемент Description
TemplateData Относит шаблон к определенной категории.

Текстовое значение

Текстовое значение является обязательным. Этот текст задает возможности проекта.

Синтаксис допустимого выражения определяется следующим образом:

  • Выражение возможностей, например "(VisualC | CSharp) + (MSTest | NUnit)".

  • "|" — это оператор OR.

  • Символы "&" и "+" являются операторами AND.

  • "!" — оператор NOT.

  • Скобки определяют порядок вычисления выражения.

  • Значение NULL или пустое выражение считается совпадением.

  • Возможности проекта могут быть любым символом, кроме этих зарезервированных символов: "':;,+-*/\!~|%$@^()={}[]<>? \t\b\n\r

Пример

В следующем примере показано три разных шаблона. Template1 Применяется либо ко всем типам проектов C#, либо к любому другому типу WindowsAppContainer проекта, поддерживающим возможность. Template2 применяется ко всем проектам C# любого типа. Template3 применяется к проектам C#, которые не являются проектами 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>

См. также