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
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
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
ProjectItem: The file that has to be included with the Project
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
WizardData - This is custom XML string that is passed to the
custom wizard extension.
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.