首页 > 解决方案 > Visual Studio 2019 项目模板仅针对某些类型的项目显示

问题描述

我创建并导入了一个项目模板,这是一个用于 Visual Studio 的 C# 类模板。

当我打开一个 C# 类库项目时,我可以使用Add > Class > UniqueIdentifier. 这按预期工作。

当我打开一个 ASP .Net Core MVC 项目并尝试相同的选项时,此模板不会出现在列表中。这不是预期的。

我希望这个项目模板出现在Add > Class我所有项目的菜单中。我曾尝试修改该.vstemplate文件,但我只能在出现在我尝试过的两种项目类型中的不同一种之间切换它。我无法让它出现在多种类型的项目中。

TemplateData这是文件部分的当前内容.vstemplate

  <TemplateData>
    <DefaultName>UniqueIdentifier.cs</DefaultName>
    <Name>UniqueIdentifier</Name>
    <Description>My Description</Description>
    <ProjectType>CSharp</ProjectType>
    <TemplateID>Microsoft.CSharp.Class</TemplateID>
    <Icon>__TemplateIcon.png</Icon>
    <PreviewImage>__PreviewImage.PNG</PreviewImage>
    <ShowByDefault>true</ShowByDefault>
  </TemplateData>

标签: c#visual-studioitemtemplate

解决方案


根据我的测试,您可以参考以下步骤制作项目模板。

首先,您可以将类导出到 C# 类库项目中的项模板。

二、需要将压缩后的.vstemplate文件多余,修改为如下:(加粗的代码需要添加)

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>TestClasslibrary.cs</DefaultName>
    <Name>TestClasslibrary</Name>
    <Description>&lt;No description available&gt;</Description>
    <ProjectType>CSharp</ProjectType>
    <SortOrder>10</SortOrder>
    <Icon>__TemplateIcon.ico</Icon>
    **<TemplateGroupID>AspNetCore</TemplateGroupID>**
  </TemplateData>
  <TemplateContent>
    <References>
      <Reference>
        **<Assembly>Microsoft.CSharp</Assembly>**
      </Reference>
    </References>
    <ProjectItem SubType="" TargetFileName="$fileinputname$.cs" ReplaceParameters="true">Class1.cs</ProjectItem>
  </TemplateContent>
</VSTemplate>

三、修改文件后,请更换.vstemplatezip文件中的文件。

第四,请将您的 zip 文件放在路径中 C:\Users\username\Documents\Visual Studio 2019\Templates\ItemTemplates。如下所示,TestClasslibrary.zip 被替换为 zip 文件。

在此处输入图像描述

最后,请重新启动您的 Visual Studio 并添加所需的项目模板。

在此处输入图像描述

注意:当前项目是asp.net core mvc。我还用winform、wpf、console和web app进行了测试,它们都可以成功添加模板。


推荐阅读