Visual Studio 项目模板仅适用于控制台应用程序

Visual Studio item templates only available for console applications

我目前正在整理一个 .vsix,其中包含使用 SideWaffle 和 TemplateBuilder v1.1.4.9-beta 的各种项目和项目模板。当 运行 实验实例中的项目时,我可以在应有的位置看到所有项目模板,但项目模板在“添加新项目”对话框中对于除控制台应用程序之外的任何项目类型不可用。如果我将项目编译为发行版 .vsix 并以传统方式为 Visual Studio 安装它,行为是相同的。

一个示例模板的文件夹结构供参考:

CSharp.vestemplate内容:

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <ProjectType>CSharp</ProjectType>
    <DefaultName>my_layout.xml</DefaultName>
    <Name>My Layout</Name>
    <Description>My Description</Description>
    <Icon>icon.png</Icon>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
    <TemplateID>65197798-4682-45e6-9bf4-d2d9e2929527</TemplateID>
    <SortOrder>1000</SortOrder>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.xml">my_layout.xml</ProjectItem>
  </TemplateContent>
</VSTemplate>

我已经试过了:

但到目前为止都无济于事。

尽管 Microsoft documentation 没有对它们的任何引用,TemplateGroupId 类型 MonoAndroidXamarin.iOS 可用,并且必须在模板的 .vstemplate.将以下元素添加到 TemplateData 元素可使模板正确显示:

<TemplateGroupID>MonoAndroid</TemplateGroupID>

令人沮丧的是,可用的 TemplateID 似乎没有在任何地方正确记录,而那些确实有效的模板遵循看似随机的命名约定(人们会期望 MonoAndroidMonoTouch,或者Xamarin.AndroidXamarin.iOS,但实际上只有 MonoAndroidXamarin.iOS 有效...)。