ProjectType element (Visual Studio templates)

Categorizes the project template so that it appears under the specified group in the New Project or Add New Item dialog box.


Project templates are supported for C++ starting in Visual Studio 2012. They are not supported for C++ in Visual Studio 2010 and earlier versions.

<VSTemplate> <TemplateData> <ProjectType>


<ProjectType> CSharp/VisualBasic/VC/Web </ProjectType>

Attributes and elements

The following sections describe attribute, child elements, and parent elements.



Child elements


Parent elements

Element Description
TemplateData Categorizes the template and defines how it displays in either the New Project or the Add New Item dialog box.

Text value

A text value is required.

This value specifies the type of project the template will create, and must contain one of the following values:

  • CSharp: Specifies that the template creates a Visual C# project or item.

  • VisualBasic: Specifies that the template creates a Visual Basic project or item.

  • Web: Specifies that the template creates a Web project or item. If the ProjectType element contains this value, the language of the project or item is defined in the ProjectSubType Element (Visual Studio Templates).


ProjectType is a required child element of TemplateData.

The value of the ProjectType element specifies where the template is located in the New Project or Add New Item dialog box. For example, a template with a ProjectType value of CSharp appears under the Visual C# node in the New Project dialog box.

A template subtype can be specified by using the ProjectSubType element.


The following example shows the metadata for a project template for a Visual C# application.

<VSTemplate Type="Project" Version="3.0.0"
        <Name>My template</Name>
        <Description>A basic starter kit</Description>
        <Project File="MyStarterKit.csproj">

See also