AppliesTo 要素 (Visual Studio テンプレート)
省略可能な式を 1 つ以上の機能と一致するように指定します (VsProjectCapabilityExpressionMatcher を参照)。 機能は、プロジェクト タイプによって、階層を介して、プロパティ __VSHPROPID5.VSHPROPID_ProjectCapabilities として公開されます。 このようにすると、共通の適用可能な機能を持つ複数のプロジェクトの種類によってテンプレートを共有できます。
この要素は省略可能です。 テンプレート ファイルには、最大で 1 つのインスタンスがあります。 この要素は、現在選択されているアクティブなプロジェクトの機能に基づいて、項目テンプレートを適用可能として利用できるようにするだけです。 項目テンプレートを適用不可にするためには使用できません。 AppliesTo
が存在しない場合、または式を正常に利用できない場合は、製品の以前のバージョンの場合と同様に、テンプレートを適用可能にするために TemplateID
または TemplateGroupID
が使用されます。
Visual Studio 2013 更新プログラム 2 で導入されました。 適切なバージョンを参照するには、Visual Studio 2013 SDK Update 2 で配信されるアセンブリの参照に関するページを参照してください。
<VSTemplate>
<TemplateData>
<AppliesTo>
構文
<AppliesTo>Capability1</AppliesTo>
属性と要素
以降のセクションでは、属性、子要素、および親要素について説明します。
属性
なし。
子要素
なし。
親要素
要素 | 説明 |
---|---|
TemplateData | テンプレートをカテゴリに分類します。 |
Text 値
テキスト値が必要です。 このテキストでプロジェクトの機能を指定します。
有効な式の構文は次のように定義されます。
"(VisualC |CSharp) + (MSTest |NUnit)"。
"|" は OR 演算子です。
"&" および "+" 文字は、どちらも AND 演算子です。
"!" 文字は NOT 演算子です。
かっこで囲むことで、評価の優先順位が強制的に設定されます。
Null または空の式は、一致として評価されます。
プロジェクトの機能には、予約文字 "'':;,+-*/\!~|&%$@^()={}[]<>を除く任意の文字を指定できます。 を除く文字を使用できます。
例
次の例に、3 種類のテンプレートを示します。 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>