8

我创建了一个VSIX Project(使用 Visual Studio 可扩展性)引用一个C# Project Template; 它看起来像这样:

<TemplateData>
    <Name>...</Name>
    <Description>...</Description>
    <Icon>...</Icon>
    <ProjectType>Web</ProjectType>
    <ProjectSubType>CSharp</ProjectSubType>
    <TemplateGroupID>Web</TemplateGroupID>
    <DefaultName>WebApplication</DefaultName>
</TemplateData>
<TemplateContent>
    <ProjectCollection>
        <ProjectTemplateLink ProjectName="My Web Application">
            Projects\WebApplication\ProjectTemplate.vstemplate
        </ProjectTemplateLink>
        <ProjectTemplateLink ProjectName="My Windows Library">
            Projects\Library\ProjectTemplate.vstemplate
        </ProjectTemplateLink>
    </ProjectCollection>
</TemplateContent>

一切都按预期工作,但我始终出现在 Visual Studio表单Project Template的默认Visual C#根类别中。New Project

我想把它放在里面Web category

在此处输入图像描述

笔记:

<ProjectType>CSharp</ProjectType>
<ProjectSubType>Web</ProjectSubType>

=> 模板出现在默认的根目录中,而

<ProjectType>Web</ProjectType>
<ProjectSubType>CSharp</ProjectSubType>

=> 模板不可见!

4

2 回答 2

13

您需要在 Visual Studio 解决方案资源管理器中设置 .vstemplate 文件的“类别”属性。

在此处输入图像描述

于 2013-06-22T22:36:39.767 回答
4

如果您手动创建项目模板(创建包含项目模板的 *.zip 文件)而不是通过 Visual Studio 中的可扩展性解决方案,则子类别取决于您在文件系统中放置项目模板包的位置。(类别仍然取决于 .vstemplate 中的 ProjectType 元素)。

例如,如果您创建一个 zip 文件,其中 .vstemplate ProjectType 的值为“CSharp”,并且您将 zip 文件放在下面(对于 vs 2010):

"%USERPROFILE%\Documents\Visual Studio 2010\Templates\ProjectTemplates\Visual C#\MySubcategory1\MySubcategory2

然后项目将出现在 Visual C# 下(由于 ProjectType),然后在“MySubcategory1\MySubcategory2”层次结构下(由于文件系统中的位置)

项目类型子类别

请注意,即使 zip 文件没有放在模板文件夹中的 Visual C# 子文件夹下,项目模板也会出现在相同的层次结构 (Visual C# - MySubcategory1 - MySubcategory2) 中,如下所示:

"%USERPROFILE%\Documents\Visual Studio 2010\Templates\ProjectTemplates\MySubcategory1\MySubcategory2
于 2015-01-15T09:52:16.093 回答