You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何为Visual Studio 2019自定义项目模板添加语言等分类标签

解决Visual Studio 2019中自定义模板缺失语言/平台标签的问题

这个问题本质是VS2019对项目模板的元数据要求比VS2017更严格——VS2017会自动推断部分标签,但2019需要你明确在模板配置里声明这些关键信息。下面是具体的解决步骤:

1. 编辑模板的.vstemplate配置文件

找到你自定义模板对应的.vstemplate文件(如果是VSIX扩展里的模板,可在扩展项目的模板目录找到;如果是独立模板,解压模板压缩包就能看到),在<TemplateData>节点下添加以下核心元数据标签:

  • 语言标签:明确指定模板所属语言,让C#筛选器能精准识别它
    <Language>C#</Language>
    
  • 项目类型标签:关联到VS的C#分类目录
    <ProjectType>CSharp</ProjectType>
    
  • 平台标签:根据你的模板目标平台填写(比如Windows、Web、Azure等,支持多个平台用逗号分隔)
    <Platform>Windows</Platform>
    

完整的<TemplateData>节点示例:

<TemplateData>
  <Name>我的自定义C#业务模板</Name>
  <Description>快速搭建符合团队规范的C#业务项目</Description>
  <Language>C#</Language>
  <ProjectType>CSharp</ProjectType>
  <Platform>Windows</Platform>
  <DefaultName>MyBusinessProject</DefaultName>
  <Icon>TemplateIcon.ico</Icon>
</TemplateData>

如果你的模板是多项目模板,记得每个子项目的.vstemplate文件也要添加这些标签,不然子模板同样会出现筛选失效的问题。

2. 检查VSIX扩展的manifest配置

如果你的模板是打包在VSIX扩展里的,打开source.extension.vsixmanifest文件,确保<Assets>节点下的模板资产配置正确关联了C#分类:

<Assets>
  <Asset Type="Microsoft.VisualStudio.ProjectTemplate" 
         d:Source="File" 
         Path="Templates\CSharp\MyBusinessTemplate.vstemplate" 
         d:VsixSubPath="Templates\CSharp" />
</Assets>

这里的Pathd:VsixSubPath要对应你模板在扩展项目里的目录结构,确保VS能正确将模板归类到C#目录下。

3. 清理VS模板缓存(推荐操作)

有时候VS会缓存旧的模板信息,修改配置后需要手动刷新缓存:

  • 关闭Visual Studio 2019
  • 删除目录:%LOCALAPPDATA%\Microsoft\VisualStudio\16.0_<你的VS实例ID>\ProjectTemplatesCache(实例ID是一串随机字符,找到对应16.0开头的目录即可)
  • 重新打开VS,它会自动重新加载所有模板

完成以上操作后,你的自定义模板应该就能在C#分类下正常显示,语言、平台等标签也会正确展示,筛选功能也能正常工作了。

内容的提问来源于stack exchange,提问作者golf89

火山引擎 最新活动