如何在TemplateData元素的New Project窗口中设置项目模板位置

时间:2018-03-15 13:48:42

标签: c# visual-studio visual-studio-extensions project-template

我正在创建一个新项目模板作为Visual Studio扩展项目,并希望它显示在我的自定义组中,该组在安装项目模板之前确实存在,位于 Visual C#节点下。 / p>

enter image description here

我希望可以在它的.vstemplate文件TemplateData部分中设置项目模板位置。我尝试设置ProjectSubType值,TemplateGroupIDNumberOfParentCategoriesToRollUp,但它不起作用。当visual studio的实验实例启动时,项目模板始终位于 Visual C#组中,但不会位于 Visual C#/ My Group 中。即使My Group已经存在,ProjectSubType也不起作用,但the documentation表示它应该在子组中创建。 如何在TemplateData部分设置项目模板位置?

1 个答案:

答案 0 :(得分:1)

自定义模板不包含本地化模板的子目录。您可以在“环境\项目和解决方案”下的“选项”对话框中更改自定义模板的默认目录。

我经常手动添加文件夹,然后复制zip文件,例如,我创建一个名为" My Group"的文件夹。在文件夹C:\ Users \ xxx \ Documents \ Visual Studio 2017 \ Templates \ ProjectTemplates \ Visual C#。

然后创建一个名为Jack的简单Console应用程序并导出该项目模板,我没有选择此选项。 enter image description here

然后我将Jack.zip复制到上面的My Group文件夹中。重新打开VS,我将在My Group文件夹下获得此项目模板。

enter image description here

这是我身边的默认.vstemplate文件:

    <VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
  <TemplateData>
    <Name>Jack</Name>
    <Description>&lt;No description available&gt;</Description>
    <ProjectType>CSharp</ProjectType>
    <ProjectSubType>
    </ProjectSubType>
    <SortOrder>1000</SortOrder>
    <CreateNewFolder>true</CreateNewFolder>
    <DefaultName>Jack</DefaultName>
    <ProvideDefaultName>true</ProvideDefaultName>
    <LocationField>Enabled</LocationField>
    <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
    <Icon>__TemplateIcon.ico</Icon>
  </TemplateData>
  <TemplateContent>
    <Project TargetFileName="Jack.csproj" File="Jack.csproj" ReplaceParameters="true">
      <ProjectItem ReplaceParameters="true" TargetFileName="App.config">App.config</ProjectItem>
      <ProjectItem ReplaceParameters="true" TargetFileName="Program.cs">Program.cs</ProjectItem>
      <Folder Name="Properties" TargetFolderName="Properties">
        <ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
      </Folder>
    </Project>
  </TemplateContent>
</VSTemplate>