我遇到了一个自定义项模板没有显示在Visual Studio 2022中的"添加新项"上的问题.

该模板是通过使用VS2022中的ASP.NET Core项目中的"导出为模板"创建的,并选中了"自动导入到Visual Studio"选项.模板已成功导出并显示在%USER_NAME%\Documents\Visual Studio 2022\Templates\ItemTemplates目录中.

但是,当试图通过ASP.NET Core 7.0项目中的"Add New Item"添加项时,项does not显示为模板.

但是,项does在添加到.NET框架4.7.2项目时出现.这说明我和它相比,至少拿起了模板.

.vstemplate代码:

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

该模板被部署到ItemTemplates目录的根目录.

如何使此模板出现在ASP.NET核心项目中?

我试着添加<TemplateGroupID>AspNetCore</TemplateGroupID>元素,但没有成功.

推荐答案

看看Deepak H A里的文章"Creating custom Item templates in Visual Studio"能不能帮上忙.

它讨论了"Automatically import the template into Visual Studio"选项.由于您已经使用了此选项,并且您的模板出现在ItemTemplates目录中,因此此部分似乎已正确实现.

.vstemplate文件中ReplaceParameters属性的重要性突出显示.该属性允许动态替换参数,如$rootnamespace$$safeitemname$,确保模板适应使用它的项目.

至关重要的是,这篇文章证实了您在.vstemplate文件中使用<TemplateGroupID>AspNetCore</TemplateGroupID>的try .这是使项模板出现在ASP.NET核心项目中的正确方法.重要的是,此标记应正确放置在.vstemplate文件的<TemplateData>部分中.

Csharp相关问答推荐

如何定义所有项目的解决方案版本?

利用.NET 8中的AddStandardResilienceDeliveries和AddStandardHedgingDeliveries实现Resiliency

更新数据库中的对象失败,原因是:Microsoft. EntityFrame Core. GbUpdateConcurrencyResponse'

当打印一行x个项目时,如何打印最后一行项目?

总是丢弃返回的任务和使方法puc无效之间有区别吗?

更改对象的旋转方向

有没有一种方法可以在包含混合文本的标签中嵌入超链接?

图形API基于appid列表检索多个应用程序

在C#中使用类中的对象值

由于POST中的应用程序/JWT,出现不支持的内容类型异常

如何在毛伊岛应用程序中完美地同步视图模型和视图的加载?

在C#中反序列化/序列化具有混合元素顺序的XML时出现问题

交替的奇数

如何防止Visual Studio断点以红色突出显示到整行?

.NET8->;并发词典总是比普通词典快...怎么回事?[包含基准结果和代码]

在使用AWS SDK for.NET时,如何判断S3是否已验证我的对象的校验和?

将C#类导入到PowerShell

在ObservableCollection上使用[NotifyPropertyChangedFor()]源代码生成器不会更新UI

最小API定义的Swagger标头参数

为什么Visual Studio 2022建议IDE0251将我的方法设置为只读?