Шаблоны элементов не отображаются в приложениях Магазина Windows
Я использовал Visual Studio 2012 "Export Template..." для создания нескольких шаблонов элементов C# для одного файла. ZIP-файлы отображаются в "Мои экспортированные шаблоны", и я могу переместить их в каталог "Шаблоны". Когда я затем создаю консольное приложение на C#, шаблоны там хорошо отображаются.
Тем не менее, это для приложения магазина Windows. И я создал этих ребят, чтобы добавить в мое приложение Windows Store. Тем не менее, диалоговое окно Добавить элементы в VS2012 не так, как их там. Я предполагаю, что с XML, сгенерированным VS2012, что-то не так. Кто-нибудь знает?
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
<TemplateData>
<DefaultName>KonaViewModelWithBack.cs</DefaultName>
<Name>KonaViewModelWithBack</Name>
<Description><No description available></Description>
<ProjectType>CSharp</ProjectType>
<SortOrder>10</SortOrder>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<References />
<ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">ConnectToRTMViewModel.cs</ProjectItem>
</TemplateContent>
</VSTemplate>
1 ответ
После поиска элементов XML в файле класса VS2012 я наткнулся на TemplateID. Если вы посмотрите туда, то заметите, что он ссылается на TemplateGroupID.
Если вы посмотрите на TempmlateGroupID (VsTemplate) для приложения на основе WinRT (см. Расположение реестра вместе с примечанием BTW ниже), то увидите, что в списке "WinRT-Managed". Если вы измените файл шаблона, добавив к нему установленный TemplateGroupID, VS2012 найдет его правильно:
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
<TemplateData>
<DefaultName>KonaViewModel.cs</DefaultName>
<Name>Kona View Model With Back Button</Name>
<Description>A Kona based View Model which implements a go back button ICommand</Description>
<ProjectType>CSharp</ProjectType>
<SortOrder>10</SortOrder>
<RequiredFrameworkVersion>2.0</RequiredFrameworkVersion>
<NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
<Icon>__TemplateIcon.ico</Icon>
<TemplateGroupID>WinRT-Managed</TemplateGroupID>
</TemplateData>
<TemplateContent>
<References />
<ProjectItem SubType="Code" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">ConnectToRTMViewModel.cs</ProjectItem>
</TemplateContent>
</VSTemplate>
Кстати, документы на странице TemplateID msdn являются неправильными, по крайней мере, на моей Win8 Pro с VS2012 Pro современной установки. Информация реестра, отображаемая там, фактически отображается в кусте пользователя DEFAULT, а не в кусте LOCAL_MACHINE).