Share via


Project Element (Visual Studio Templates)

Specifies the files or directories to add to the project.

<VSTemplate>
   <TemplateContent>
     <Project>

<Project
    File="MyProject.proj"
    TargetFileName="MyTargetProject.proj"
    ReplaceParameters="true/false">
    IgnoreProjectParameter="$myCustomParameter$"
        ...
</Project>

Attributes and Elements

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

Attributes

Attribute

Description

File

Required attribute.

Specifies the name of the project file in the template .zip file.

ReplaceParameters

Optional attribute.

A Boolean value that specifies whether the project file has parameter values that must be replaced when a project is created from the template. Default value is false.

TargetFileName

Optional attribute.

Specifies the name of the project file when a project is created from the template.

IgnoreProjectParameter

Optional attribute.

Specifies whether the project should be added to the current solution. If the value of custom parameter, "$myCustomParameter$" exists in the parameter replacement file, the project is created but not added as part of the currently open solution.

Child Elements

Element

Description

Folder

Optional element.

Specifies a folder to add to the project.

ProjectItem

Optional element.

Specifies a file to add to a project.

Parent Elements

Element

Description

TemplateContent

Required element.

Remarks

Project is an optional child element of TemplateContent.

The Project element is used to specifiy a project, and therefore, is only valid in project templates.

Project elements can have Folder children elements or ProjectItem children elements, but not a mixture of both Folder and ProjectItem children elements.

Visual Studio automatically renames the project file name based on the name entered by the user in the New Project dialog box. Use the TargetFileName attribute if you want to provide an alternate file name for project files created with the template.

Example

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

<VSTemplate Type="Project" Version="3.0.0"
    xmlns="https://schemas.microsoft.com/developer/vstemplate/2005">
    <TemplateData>
        <Name>My template</Name>
        <Description>A basic starter kit</Description>
        <Icon>TemplateIcon.ico</Icon>
        <ProjectType>CSharp</ProjectType>
    </TemplateData>
    <TemplateContent>
        <Project File="MyStarterKit.csproj">
            <ProjectItem>Form1.cs<ProjectItem>
            <ProjectItem>Form1.Designer.cs</ProjectItem>
            <ProjectItem>Program.cs</ProjectItem>
            <ProjectItem>Properties\AssemblyInfo.cs</ProjectItem>
            <ProjectItem>Properties\Resources.resx</ProjectItem>
            <ProjectItem>Properties\Resources.Designer.cs</ProjectItem>
            <ProjectItem>Properties\Settings.settings</ProjectItem>
            <ProjectItem>Properties\Settings.Designer.cs</ProjectItem>
        </Project>
    </TemplateContent>
</VSTemplate>

See Also

Reference

Visual Studio Template Schema Reference

ProjectItem Element (Visual Studio Project Templates)

Folder Element (Visual Studio Project Templates)

Concepts

Introduction to Visual Studio Templates