注册项目和项模板
项目类型必须注册其项目和项目项模板所在的目录。 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