VS2022中ASP.NET Core自定义项模板不显示问题求助
解决ASP.NET Core自定义项模板在Visual Studio 2022“添加新项”中不显示的问题
问题分析
你导出的模板仅指定<ProjectType>CSharp</ProjectType>,这会让模板默认适配所有C#项目,但ASP.NET Core项目需要更精准的类型标识和目录结构匹配,导致模板无法在Core项目中被识别。
解决步骤
更新.vstemplate配置
编辑模板的.vstemplate文件,修改<TemplateData>部分,添加ASP.NET Core专属的项目类型和分组ID,同时可指定目标框架版本:<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item"> <TemplateData> <DefaultName>IndexTest.cshtml</DefaultName> <Name>IndexTest</Name> <Description>自定义Razor页面模板</Description> <!-- 保留CSharp以兼容通用C#项目,添加AspNetCore指定Core项目 --> <ProjectType>AspNetCore</ProjectType> <ProjectType>CSharp</ProjectType> <SortOrder>10</SortOrder> <Icon>__TemplateIcon.ico</Icon> <!-- 指定ASP.NET MVC分组,匹配Razor页面项目类型 --> <TemplateGroupID>AspNetMvc</TemplateGroupID> <!-- 可选:限定模板仅在.NET 7.0项目中显示 --> <RequiredFrameworkVersion>7.0</RequiredFrameworkVersion> </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根目录,需创建对应项目类型的子目录,将模板压缩包(.zip)放入:%USER_NAME%\Documents\Visual Studio 2022\Templates\ItemTemplates\CSharp\ASP.NET Core\若要限定到.NET 7.0,可创建更具体的目录:
%USER_NAME%\Documents\Visual Studio 2022\Templates\ItemTemplates\CSharp\ASP.NET Core 7.0\注意:必须保留模板的.zip压缩包格式,不能解压后存放。
清理Visual Studio模板缓存
VS会缓存模板数据,修改配置后需清理缓存生效:- 完全关闭Visual Studio 2022
- 删除缓存目录:
%LOCALAPPDATA%\Microsoft\VisualStudio\17.0_<你的随机ID>\ItemTemplateCache - 重新启动Visual Studio,打开ASP.NET Core 7.0项目尝试添加新项
内容的提问来源于stack exchange,提问作者Jon P
相关产品推荐
相关产品推荐

