How to: Locate and organize project and item templates
Applies to: Visual Studio Visual 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
Template files must be placed in a known location in order for them to be shown in the new project and new item dialog boxes..
You can also create custom subcategories in the user template location, and the categories are shown in the New Project and Add New Item dialog boxes.
Locate templates
Installed templates and user templates are stored in two different locations.
Installed templates
By default, templates installed with Visual Studio are located in:
%ProgramFiles(x86)%\Microsoft Visual Studio\2017\<edition>\Common7\IDE\ProjectTemplates\<Language>\<Locale ID>
%ProgramFiles(x86)%\Microsoft Visual Studio\2017\<edition>\Common7\IDE\ItemTemplates\<Language>\<Locale ID>
For example, the following directory has the Visual Basic item templates for English (LCID 1033):
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ItemTemplates\VisualBasic\1033
User templates
If you add a compressed (.zip) file that includes a .vstemplate file to the user template directory, the template appears in the new project and new item dialog boxes. By default, user templates are located in:
%USERPROFILE%\Documents\Visual Studio 2017\Templates\ProjectTemplates
%USERPROFILE%\Documents\Visual Studio 2017\Templates\ItemTemplates
For example, the following directory has user project templates for C#:
- C:\Users\UserName\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#
Tip
You can change the known location for user templates in Tools > Options > Projects and Solutions > Locations.
Organize templates
The categories in the New Project and Add New Item dialog boxes reflect the directory structures that exist in the installed template and user template locations. User templates can be organized into their own categories by adding new folders to the user template directory. The New Project and Add New Item dialog boxes show any changes you make to your user template categories.
Note
You cannot create a new category at the programming language level. New categories can only be created within each language.
Create new user project template categories
Create a folder in the programming language folder in the user project template directory. For example, to establish a HelloWorld category for C# project templates, create the following directory:
- %USERPROFILE%\Documents\Visual Studio <Version>\Templates\ProjectTemplates\Visual C#\HelloWorld
Place all the templates for this category in the new folder.
On the File menu, choose New > Project.
The HelloWorld category appears in the New Project dialog box, under Installed > Visual C#.
Create new user item template categories
Create a folder in the programming language folder in the user item template directory. For example, to establish a HelloWorld category for C# item templates, create the following directory:
- %USERPROFILE%\Documents\Visual Studio <Version>\Templates\ItemTemplates\Visual C#\HelloWorld
Place all the templates for this category in the new folder.
Create a project or open an existing project. Then, on the Project menu, choose Add New Item.
The HelloWorld category appears in the Add New Item dialog box, under Installed > Visual C# Items.
Display templates in parent categories
You can enable templates in subcategories to be displayed in their parent categories by using the NumberOfParentCategoriesToRollUp
element in the .vstemplate file. These steps are the same for project templates and item templates.
Locate the .zip file that contains the template.
Extract the .zip file.
Open the .vstemplate file in Visual Studio.
In the
TemplateData
element, add aNumberOfParentCategoriesToRollUp
element. For example, the following code makes the template visible in the parent category, but no higher.<TemplateData> ... <NumberOfParentCategoriesToRollUp> 1 </NumberOfParentCategoriesToRollUp> ... </TemplateData>
Save and close the .vstemplate file.
Select the files in your template, right-click the selection, and choose Send to > Compressed (zipped) folder.
The files are compressed into a .zip file.
Delete the extracted template files and the old template .zip file.
Put the new .zip file in the directory that had the deleted .zip file.