The vstemplate is made up of the following.
·
TemplateData - Stores information on how to display the template
information in New Project or Add New Item Dialog box. Important elements of
TemplateData are the following.
·
Name: The name that gets displayed in the New Project / Item
dialog box.
·
Description: The description of the template that gets displayed
on the New Project / Item dialog box after the Name has been selected.
·
Icon: The images file to be displayed with the Template in the
New Project / Item dialog box.
·
ProjectType: Used to categorize the Project Template so it
appears in the specified group in the New Project or Add New Item. The
ProjectType can have the following values.
·
CSharp: For Visual C# project / Items
·
VisualBasic: For Visual Basic Project / Items
·
JSharp: For Visual J# Project / Items
·
Web: The template used to create Web Projects. If this
ProjectType is selected, then to specify the language you need to specify the
ProjectSubType element.
·
TemplateContent - This specifies all the template contents. Elements
of TemplateContent are the following.
·
ProjectCollection: Used to define the organization and contents
of multi-project templates.
·
Project: Specifies all the Items, like files and folders, which
are included in the project. Elements are either Folder or ProjectItem.
·
References: Specifies all the assembly references required for
the project.
·
ProjectItem: The file that has to be included with the Project
Template.
·
CustomParameters: Used with Wizard Templates. The custom
parameters are passed to the template wizard to make parameter replacements.
·
WizardExtension - Contains the registration information for customizing
the template Wizard. It will contain the assembly information and the full
class name.
·
WizardData - This is custom XML string that is passed to the
custom wizard extension.
This article
will focus on the first two elements. WizardExtension and WizardData are out
of scope of this article. I will try to publish another article which will
deal with WizardExtension and WizardData in the near future.