我使用visual studio 2012“导出模板...”为自己创建了一些单个文件C#项模板。 ZIP文件显示在My Exported Templates中,我可以将它们移动到Templates目录中。当我创建一个C#控制台应用程序时,模板显示就好了。
但是,这适用于Windows应用商店。我创建了这些人添加到我的Windows应用程序中。但是,VS2012中的“添加项目”对话框并不具备它们的方式。我猜测VS2012生成的XML有问题。有人知道吗?
<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>
答案 0 :(得分:2)
在寻找VS2012类文件中的XML元素之后,我偶然发现了TemplateID。如果你看那里,你会注意到它引用了一个TemplateGroupID。
如果您查看基于WinRT的应用程序的TempmlateGroupIDs(VsTemplate)(请参阅下面的registry location以及下面的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>
BTW,TemplateID msdn页面上的文档不正确,至少在我的Win8 Pro上安装了VS2012 Pro。显示在那里的注册表信息实际显示在DEFAULT用户配置单元中,而不是LOCAL_MACHINE配置单元中。