模板文件必须置于 Visual Studio 能够识别的位置,这样模板才能出现在**“新建项目”和“添加新项”**对话框中。可以为模板创建自定义子类别,以使这些子类别也出现在用户界面上。
定位模板
默认情况下,Visual Studio 在两个位置搜索项目模板和项模板。如果这些位置中存在一个包含 .vstemplate 文件的压缩文件,则**“新建项目”或“添加新项”**对话框中会出现一个模板。
已安装模板
默认情况下,与产品一起安装的模板位于以下位置:
- \VisualStudioInstallationDirectory\Common7\IDE\ItemTemplates\Language\Locale\ 
- \VisualStudioInstallationDirectory\Common7\IDE\ProjectTemplates\Language\Locale\ 
例如,下面的目录包含英文版本的 Visual Studio 项目模板:
C:\VisualStudioInstallationDirectory\Common7\IDE\ItemTemplates\VisualBasic\1033\
自定义模板
默认情况下,自定义模板位于以下位置:
- \My Documents\Visual Studio Version\Templates\ProjectTemplates\Language\ 
- \My Documents\Visual Studio Version\Templates\ItemTemplates\Language\ 
例如,下面的目录包含自定义 Visual C# 项目模板:
C:\Documents and Settings\UserName\My Documents\Visual Studio 2013\Templates\ProjectTemplates\Visual C#\
自定义模板中不包含用于本地化模板的子目录。可以更改自定义模板的默认目录,在 Environment\Projects and Solutions中的**"选项"** 对话框下。
组织模板
**“新建项目”和“添加新项”**对话框中的类别反映出已安装模板和自定义模板位置处的目录结构。可以修改这些目录结构,以一种更有用的方式来组织这些模板。
| .gif) 说明 | 
|---|
| 不能在编程语言级别创建新类别。只能在每种语言内部创建新类别。 | 
如果特定语言的已安装模板和自定义模板的目录结构内具有不同结构(即,某个文件夹下有目录,而另一个文件夹下没有目录),则**“新建项目”**对话框中所出现的类别集将是所有类别的合并类别。
组织已安装模板
可通过在编程语言文件夹内创建子目录的方式对已安装模板进行组织。这些子目录作为虚拟文件夹出现在每种语言的**“新建项目”和“添加新项”**对话框中。
创建新的已安装项目模板类别
- 在已安装模板目录的语言文件夹中创建一个文件夹。例如,若要为 Visual Studio 项目模板创建一个 Office 类别,可以创建以下目录: - \VisualStudioInstallationDirectory\Common7\IDE\ProjectTemplates\VisualBasic\1033\Office\ 
- 将此类别的所有模板放在新文件夹中。 
- 关闭 Visual Studio 的所有实例。 
- 在**“开始”菜单上,单击“运行”,键入 cmd,再单击“确定”**。 
- 在命令提示符下,找到包含 devenv.exe 的目录,然后键入 devenv /installvstemplates。 
- 运行 Visual Studio。 
- 在**“文件”菜单上单击“新建”,再单击“项目”**。 
- 确认 Office 类别出现在**“新建项目”对话框的“项目类型”**窗格中的 Visual Basic 之下。 
还可以将项目项模板的子集分组到一个自定义文件夹中。
创建新的已安装项模板类别
- 在已安装模板目录的语言文件夹中创建一个文件夹。例如,若要为 Visual C# 项模板创建 Web 类别,可以创建以下目录: - \VisualStudioInstallationDirectory\Common7\IDE\ItemTemplates\CSharp\1033\Web\ 
- 将此类别的所有模板放在新文件夹中。 
- 关闭 Visual Studio 的所有实例。 
- 在**“开始”菜单上,单击“运行”,键入 cmd,再单击“确定”**。 
- 在命令提示符下,找到包含 devenv.exe 的目录,然后键入 devenv /setup。 
- 运行 Visual Studio。 
- 创建一个项目或打开一个现有项目。 
- 在**“项目”菜单上,单击“添加新项”**。 
- 确认 Web 类别出现在**“添加新项”对话框的“项目类型”**窗格中。 
组织自定义模板
通过在自定义模板位置中添加新的文件夹,可将自定义模板组织到自身的类别中。**“新建项目”**对话框反映出对模板类别所做的任何更改。
创建新的自定义项目模板类别
- 在自定义项目模板目录的语言文件夹中创建一个文件夹。例如,若要为 Visual C# 模板创建 HelloWorld 类别,可以创建以下目录: - \My Documents\Visual Studio 2013\Templates\ProjectTemplates\CSharp\HelloWorld\ 
- 将此类别的所有模板放在新文件夹中。 
- 在**“文件”菜单上单击“新建”,再单击“项目”**。 
- 确认 HelloWorld 类别出现在**“新建项目”对话框的“项目类型”**窗格中的 Visual C# 之下。 
还可以将自定义项模板的子集分组到一个自定义文件夹中。
创建新的自定义项模板类别
- 在自定义项模板目录的语言文件夹中创建一个文件夹。例如,若要为 Visual C# 模板创建 HelloWorld 类别,可以创建以下目录: - \My Documents\Visual Studio 2013\Templates\ItemTemplates\CSharp\HelloWorld\ 
- 将此类别的所有模板放在新文件夹中。 
- 创建一个项目或打开一个现有项目。 
- 在**“项目”菜单上,单击“添加新项”**。 
- 确认 HelloWorld 类别出现在**“添加新项”对话框的“项目类型”**窗格中。 
在父类别中显示模板
通过使用 .vstemplate 文件中的 NumberOfParentCategoriesToRollUp 元素,可以使子类别中的模板显示在其父类别中。上述步骤对于项目模板和项模板是相同的。
在父类别中显示模板
- 找到包含该模板的 .zip 文件。 
- 解压缩该 .zip 文件。 
- 在 Visual Studio 中打开 .vstemplate 文件。 
- 在 TemplateData 元素中添加一个 NumberOfParentCategoriesToRollUp 元素。例如,下面的代码使模板显示在父类别中,但无法在更高一层的类别中显示。 - <TemplateData> ... <NumberOfParentCategoriesToRollUp> 1 </NumberOfParentCategoriesToRollUp> ... </TemplateData>
- 保存并关闭 .vstemplate 文件。 
- 选择模板中的文件,右击选定内容,单击**“发送到”,然后单击“压缩(zipped)文件夹”**。所选文件被压缩为一个 .zip 文件。 
- 删除解压缩的模板文件和旧的 .zip 模板文件。 
- 将新的 .zip 文件放置到已删除的 .zip 文件原来所在的目录中。 
请参见
任务
参考
NumberOfParentCategoriesToRollUp(Visual Studio 模板)