应该使用哪些设置来获取使用.NET Core项目的自定义ItemTemplates?

Bra*_*NET 8 vsix asp.net-core visual-studio-2017

我有一个Visual Studio 2017项目模板扩展,目前正在使用ASP.NET项目.它有以下.vstemplate:

<VSTemplate Version="3.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
  <TemplateData>
    <Name>Angular Component</Name>
    <Description>Files for an Angular component</Description>
    <RequiredFrameworkVersion>4.5</RequiredFrameworkVersion>
    <Icon>AngularComponentTemplate.ico</Icon>
    <ProjectType>CSharp</ProjectType>
    <ProjectSubType>Web</ProjectSubType>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
  </TemplateData>
  <TemplateContent>
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.component.html">base.component.html</ProjectItem>
    <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$.component.ts">base.component.ts</ProjectItem>
  </TemplateContent>
</VSTemplate>
Run Code Online (Sandbox Code Playgroud)

另外,引用它的VSIX文件具有

的ItemTemplate\CSHARP\WEB

设置为项目的"VSIX子路径"属性.

但是,我不能让这个模板出现在ASP.NET Core项目中.我尝试在vstemplate中使用它:

<ProjectType>DNX</ProjectType>
<TemplateGroupID>SharedDotNetAndDotNetWeb</TemplateGroupID>
Run Code Online (Sandbox Code Playgroud)

(来自/sf/answers/2698074431/)但它没有用.在Visual Stuido 2017的发布版本中,如何让项目模板出现在.NET核心项目中?

小智 10

我在为pug文件创建项目模板时遇到了同样的问题.

这是我做的:

首先,我发现了股票模板的编写方式:

C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Professional\Common7\IDE\ItemTemplates\AspNetCore

这是我的模板的样子:

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>page.pug</DefaultName>
    <Name>Pug File</Name>
    <Description>This is a basic pug file template (previously Jade)</Description>
    <ProjectType>CSharp</ProjectType>
    <TemplateGroupID>AspNetCore</TemplateGroupID>
    <TemplateID>AspNetCore.Pug</TemplateID>
    <NumberOfParentCategoriesToRollUp>2</NumberOfParentCategoriesToRollUp>
    <Icon>__TemplateIcon.ico</Icon>
    <PreviewImage>__PreviewImage.ico</PreviewImage>
    <SortOrder>10</SortOrder>
    <ShowByDefault>false</ShowByDefault>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem ReplaceParameters="true">page.pug</ProjectItem>
  </TemplateContent>
</VSTemplate>
Run Code Online (Sandbox Code Playgroud)

需要注意的领域:ProjectType,TemplateGroupId,TemplateId(自己制作)和NumberOfParentCategoriesToRollUp

我希望我的模板主要显示在"内容"类别中,其中HTML和CSS类型模板是这样我将我的zip文件放入

Visual Studio 2017\Templates\ItemTemplates\Visual C#\AspNetCore\Web\Content
Run Code Online (Sandbox Code Playgroud)

我不得不创建一些目录(AspNetCore\Web\Content)来获得这个结构.

然后将设置为"NumberOfParentCategoriesToRollUp"的设置设置为2允许模板显示在"内容"类别中,还可以"汇总"并显示在Web和AspNetCore类别中.

有关模板组织的更多信息,请访问:

https://docs.microsoft.com/en-us/visualstudio/ide/how-to-locate-and-organize-project-and-item-templates

然后,当您完成所有操作后,打开Visual Studio 2017开发人员命令提示符并键入:

devenv /updateconfiguration
Run Code Online (Sandbox Code Playgroud)