0

我目前正在整理一个 .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>

我已经尝试过:

  • 在 .vstemplate 中设置 ShowByDefault、ProjectSubType 和 TemplateGroupID 的值
  • 摆弄文件夹结构
  • 逐行比较我的 .csproj 和 .vsixmanifest 文件与其他模板包的文件,例如 SideWaffle

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

4

1 回答 1

0

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

<TemplateGroupID>MonoAndroid</TemplateGroupID>

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

于 2017-01-15T17:33:07.623 回答