AppliesTo, element (szablony visual studio)
Określa wyrażenie opcjonalne, aby dopasować co najmniej jedną funkcję (zobacz VsProjectCapabilityExpressionMatcher). Możliwości są udostępniane przez typy projektów za pośrednictwem hierarchii jako __VSHPROPID5 właściwości . VSHPROPID_ProjectCapabilities. W ten sposób szablon może być współużytkowany przez wiele typów projektów, które mają wspólne odnośne funkcje.
Ten element jest opcjonalny. Plik szablonu może zawierać maksymalnie jedno jego wystąpienie. Element umożliwia jedynie potwierdzenie zgodności szablonu elementu z funkcjami aktualnie zaznaczonego aktywnego projektu. Nie można za jego pomocą ustawić niezgodności szablonu. Jeśli AppliesTo
jest nieobecny lub wyrażenie nie zostanie pomyślnie wyrażeniu zgody, lub TemplateID
TemplateGroupID
zostanie użyte do zastosowania szablonu, tak jak w przypadku poprzednich wersji produktu.
Wprowadzono w programie Visual Studio 2013 Update 2. Aby odwołać się do poprawnej wersji, zobacz Referencing assemblies delivered in the Visual Studio 2013 SDK Update 2 (Odwoływanie się do zestawów dostarczonych w zestawie SDK programu Visual Studio 2013 Update 2).
<VSTemplate>
<TemplateData>
<AppliesTo>
Składnia
<AppliesTo>Capability1</AppliesTo>
Atrybuty i elementy
W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.
Atrybuty
Brak.
Elementy podrzędne
Brak.
Elementy nadrzędne
Element | opis |
---|---|
Templatedata | Nadawanie szablonowi kategorii. |
Wartość tekstowa
Wartość tekstowa jest wymagana. Tekst określa funkcje projektu.
Prawidłową składnię wyrażeń definiuje się następująco:
Wyrażenie możliwości, takie jak "(VisualC | CSharp) + (MSTest | NUnit)".
Operator "|" jest operatorem OR.
Znaki "&" i "+" są operatorami AND.
Znak „!” jest operatorem NIE.
Nawiasy wymuszają kolejność pierwszeństwa w ocenie.
Wyrażenie o wartości null lub puste jest interpretowane jako zgodność.
Możliwości projektu mogą być dowolnym znakiem z wyjątkiem tych znaków zarezerwowanych: "'':;,+-*/\!~|%$@^()={}[]<>? \t\b\n\r
Przykład
W przykładzie poniżej widać trzy różne szablony. Template1
dotyczy wszystkich typów projektów w języku C# lub dowolnego innego typu projektu, który obsługuje WindowsAppContainer
tę funkcję. Template2
dotyczy wszystkich projektów języka C# dowolnego rodzaju. Template3
dotyczy projektów w języku C#, które nie WindowsAppContainer
są projektami.
<!-- 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>