AppliesTo 元素 (Visual Studio 範本)
指定選擇性運算式以符合一或多個功能(請參閱 VsProjectCapabilityExpressionMatcher)。 透過階層將功能公開為屬性 __VSHPROPID5。VSHPROPID_ProjectCapabilities。 如此一來,範本就可以在具有通用功能的多個專案類型之間共用。
這是選擇性的項目。 一個範本檔最多只能有一個執行個體。 這個項目只會根據目前選取的現用專案,讓項目範本加入成為適用的範本。 它不能用來讓項目範本變成不適用。 如果 AppliesTo
不存在或運算式未成功選擇加入,則會使用 TemplateID
或 TemplateGroupID
讓範本成為適用,就如舊版產品一樣。
已在 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>