Project element (Visual Studio templates)

Applies to: yesVisual Studio noVisual Studio for Mac

Note

This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

Specifies the files or directories to add to the project.

<VSTemplate> <TemplateContent> <Project>

Syntax

<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="http://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