注册项目和项模板

项目类型必须注册其项目和项目项模板所在的目录。 Visual Studio 使用与项目类型关联的注册信息来确定在“添加新项目”和“添加新项”对话框中显示的内容。

有关模板的详细信息,请参阅 “添加项目”和“项目项模板”。

项目的注册表项

以下示例显示了 HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\<Version> 下的注册表项。 随附的表说明了示例中使用的元素。

[Projects\{ProjectGUID}]
@="MyProjectType"
"DisplayName"="#2"
"Package"="{VSPackageGUID}"
"ProjectTemplatesDir"="C:\\MyProduct\\MyProjectTemplates"
名称 Type 描述
@ REG_SZ 此类项目的默认名称。
DisplayName REG_SZ 要从包下注册的附属 DLL 中检索的名称的资源 ID。
REG_SZ 在包下注册的包的类 ID。
ProjectTemplatesDir REG_SZ 项目模板文件的默认路径。 “项目模板”文件由 “新建项目” 模板显示。

注册项模板

必须注册存储项模板的目录。

[Projects\{ProjectGUID}\AddItemTemplates\TemplateDirs\{VSPackageGUID}\1]
@="#7"
"TemplatesDir"="C:\\MyProduct\\MyProjectItemTemplates "
"TemplatesLocalizedSubDir"="#10"
"SortPriority"=dword:00000064
名称 Type 描述
@ REG_SZ 添加项模板的资源 ID。
TemplatesDir REG_SZ 在“添加新项”向导的对话框中显示的项目项的路径。
TemplatesLocalizedSubDir REG_SZ 用于命名包含本地化模板的 TemplatesDir 子目录的字符串的资源 ID。 由于 Visual Studio 从附属 DLL 加载字符串资源(如果有),因此每个附属 DLL 可以包含不同的本地化子目录名称。
SortPriority REG_DWORD 设置 SortPriority 以控制模板在 “添加新项 ”对话框中显示的顺序。 较大的 SortPriority 值显示在模板列表中。

注册文件筛选器

(可选)可以注册 Visual Studio 在提示文件名时使用的筛选器。 例如,“打开文件”对话框的 Visual C# 筛选器为:

Visual C# 文件(*.cs,*.resx,*.settings,*.xsd,*.wsdl;*.cs,*.resx,*.settings,*.xsd,*.wsdl)

为了支持注册多个筛选器,每个筛选器在HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\<Version>\Projects\{<ProjectGUID>}\Filters\<Subkey 下在其自己的子项>中注册。 子项名称是任意的;Visual Studio 忽略子项的名称,只使用其值。

可以通过设置标志来控制筛选器所使用的上下文,如下表所示。 如果筛选器未设置任何标志,则会在“添加现有项”对话框和“打开文件”对话框中的常用筛选器之后列出该筛选器,但不会在“在文件中找到”对话框中使用该筛选器。

[Projects\{ProjectGUID}\Filters\MyLanguageFilter]
@="#3"
"CommonOpenFilesFilter"=dword:00000000
"CommonFindFilesFilter"=dword:00000000
"FindInFilesFilter"=dword:00000000
"NotOpenFileFilter"=dword:00000000
"NotAddExistingItemFilter"=dword:00000000
"SortPriority"=dword:00000064
名称 Type 描述
CommonFindFilesFilter REG_DWORD 使筛选器成为“在文件中查找”对话框中的常用筛选器之一。 在未标记为通用的筛选器之前,常用筛选器将列在筛选器列表中。
CommonOpenFilesFilter REG_DWORD 使筛选器成为“打开文件”对话框中的常用筛选器之一。 在未标记为通用的筛选器之前,常用筛选器将列在筛选器列表中。
FindInFilesFilter REG_DWORD 列出“在文件中查找”对话框中的常见筛选器之后的筛选器
NotOpenFileFilter REG_DWORD 指示筛选器未在 “打开文件 ”对话框中使用。
NotAddExistingItemFilter REG_DWORD 指示筛选器未在 “添加现有项 ”对话框中使用。
SortPriority REG_DWORD 设置 SortPriority 以控制筛选器的显示顺序。 较大的 SortPriority 值显示在筛选器列表中。

目录结构

只要通过集成开发环境(IDE)注册位置,VSPackage 就可以将模板文件和文件夹放在本地或远程磁盘上。 但是,为了便于组织,我们建议在产品的安装路径下使用以下目录结构。

\模板

\Projects (包含项目模板)

\Applications

\组件

\ ...

\ProjectItems (包含项目项)

\类

\形式

\网页

\HelperFiles (包含多文件项目项中使用的文件)

\WizardFiles

另请参阅