Elemen TerapkanKe (templat Visual Studio)
Menentukan ekspresi opsional untuk mencocokkan satu atau beberapa kemampuan (lihat VsProjectCapabilityExpressionMatcher). Kemampuan diekspos oleh jenis proyek melalui hierarki sebagai properti __VSHPROPID5. VSHPROPID_ProjectCapabilities. Dengan cara ini, templat dapat dibagikan oleh beberapa jenis proyek yang memiliki kemampuan umum yang berlaku.
Elemen ini bersifat opsional. Mungkin ada maksimal satu instans dalam file templat. Elemen ini hanya memungkinkan templat item untuk ikut serta sebagaimana berlaku, berdasarkan kemampuan proyek aktif yang saat ini dipilih. Ini tidak dapat digunakan untuk membuat templat item tidak berlaku. Jika AppliesTo
tidak ada atau ekspresi tidak berhasil ikut serta, maka TemplateID
atau TemplateGroupID
digunakan untuk membuat templat berlaku, seperti halnya versi produk sebelumnya.
Diperkenalkan di Visual Studio 2013 Update 2. Untuk mereferensikan versi yang benar, lihat Merujuk rakitan yang dikirimkan di Visual Studio 2013 SDK Update 2.
<VSTemplate>
<TemplateData>
<AppliesTo>
Sintaks
<AppliesTo>Capability1</AppliesTo>
Atribut dan elemen
Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.
Atribut
Tidak ada.
Elemen anak
Tidak ada.
Elemen induk
Elemen | Deskripsi |
---|---|
TemplateData | Mengategorikan templat. |
Nilai teks
Nilai teks diperlukan. Teks ini menentukan kemampuan proyek.
Sintaks ekspresi yang valid didefinisikan sebagai:
Ekspresi kemampuan, seperti "(VisualC | CSharp) + (MSTest | NUnit)".
"|" adalah operator OR.
Karakter "&" dan "+" adalah operator AND.
Karakter "!" adalah operator NOT.
Urutan prioritas evaluasi paksa tanda kurung.
Ekspresi null atau kosong dievaluasi sebagai kecocokan.
Kemampuan proyek mungkin karakter apa pun kecuali karakter cadangan ini: "'':;,+-*/\!~|&%$@^()={}[]<>? \t\b\n\r
Contoh
Contoh berikut menunjukkan tiga templat yang berbeda. Template1
berlaku baik untuk semua jenis proyek C# atau jenis proyek lain yang mendukung WindowsAppContainer
kemampuan. Template2
berlaku untuk semua proyek C# dalam bentuk apa pun. Template3
berlaku untuk proyek C# yang bukan WindowsAppContainer
proyek.
<!-- 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>