Steven Powell
Visual Studio Team
Microsoft Corporation
2002 年 2 月

摘要:本文介绍如何在各种 Visual Studio .NET 对话框中创建顶层文件夹,方便地访问企业模板项目。读者应该熟悉 Visual Studio .NET 和企业模板。

目录

简介

如果使用 Visual Studio® .NET 企业模板创建以策略为导向的模板、语言项目或项目项,则可以轻松地在多个 Visual Studio 对话框的自定义文件夹中访问这些内容。您可以在 New Project(新建项目)、Add New Project(添加新项目)和 Add New Item(添加新项)对话框中为您的开发小组提供顶层自定义文件夹。在 New Project(新建项目)和 Add New Project(添加新项目)对话框中,添加自定义文件夹的过程基本相同。而在 Add New Item(添加新项)对话框中添加自定义文件夹的过程则略有不同。本文将介绍如何在这三个对话框中添加自定义文件夹。

在 New Project(新建项目)和 Add New Project(添加新项目)对话框中添加自定义文件夹

在创建具有策略的新模板或新语言项目时,您可以在 New Project(新建项目)或 Add New Project(添加新项目)对话框中提供一个新的顶层文件夹,而不是将它们放在 Other Projects(其他项目)\Enterprise Template Projects(企业模板项目)文件夹下。例如,如果要为开发小组创建一套自定义模板,那么在 Visual Basic、Visual C# 和 Visual C++ 文件夹旁边创建一个自定义文件夹会很有帮助。要创建新的顶层文件夹并将自定义模板或项目放在该文件夹中,请执行下面介绍的步骤。

此过程包括两部分:

  • 生成一个唯一的 GUID。
  • 使用 GUID 更新注册表以指向您的自定义模板目录。

在第一部分中,可以使用诸如 GUIDGEN 等工具,以注册表格式生成一个唯一的 GUID。例如,假设您运行 GUIDGEN 并得到唯一的 GUID:{499D9F32-1BA6-4a5e-A781-188CAF8085FE}。

在第二部分中,需要修改注册表。

为 New Project(新建项目)对话框修改注册表

  1. 运行 RegEdit 并导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\NewProjectTemplates\TemplateDirs。
  2. 在 TemplateDirs 节点中,添加一个键,键名为前面生成的 GUID。
  3. 在以 GUID 命名的节点下,添加一个名为“/1”的节点,其(默认)值等于您要在 New Project(新建项目)和 Add New Project(添加新项目)对话框中显示的此文件夹的名称。例如,将文件夹命名为“TopLevelFolder”。
  4. 再在“/1”节点中添加两个子键。
    1. 第一个键是名为“SortPriority”的 DWORD 键。其值确定文件夹在对话框中的显示顺序。数值越小,级别越高。假设要始终先显示自定义文件夹,则将 SortPriority 的值指定为“0”。
    2. 第二个键是名为“TemplatesDir”的字符串键。其值是自定义项目文件夹的路径。在本例中,自定义项目显示在“D:\Public\Demo\EnterpriseFrameworks\ProxyProjects”文件夹中。如果网络共享位置有一套模板,也可以在此处指定其 UNC 路径。

注册表树应如下所示:

图 1:注册表树

节点“/1”的键和值如下所示:

图 2:注册表键和值

注意:此处有一些限制条件。如果自定义模板启动了子项目向导,则不管模板本身位于何处,这些向导都必须保存在 [安装 Visual Studio .NET 的驱动器号]:\Program Files\Microsoft Visual Studio .NET\EnterpriseFrameworks\EFWizards 文件夹中。同样,如果模板仅指定了策略文件的名称而没有指定其完整路径,则策略文件也需要保留在标准策略文件夹 (EnterpriseFrameworks\Policy) 下,才能被找到。如果模板使用静态原型并且包含指向策略文件的绝对路径,则所有模板文件都可以驻留在网络路径上。

在更改注册表时,如果 Visual Studio 正在运行,请关闭并重新启动 Visual Studio 以查看更改结果。启动 Visual Studio .NET IDE 时,New Project(新建项目)对话框将如下所示:

图 3:具有自定义文件夹的 New Project(新建项目)对话框

上述步骤可在 New Project(新建项目)对话框中添加自定义文件夹,这个文件夹只能在创建新项目时使用。但是,如果用户向父企业模板项目中添加一个项目,则可以使用 New Project(新建项目)对话框的自定义版本,即 Add New Project(添加新项目)对话框。此时,您需要创建另一个注册表项来修改此对话框。

为 Add New Project(添加新项目)对话框修改注册表

  1. 在 RegEdit 中,导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Projects\{FE3BBBB6-72D5-11d2-9ACE-00C04F79A2A4}\AddItemTemplates\TemplateDirs。
  2. 在 TemplateDirs 节点中,添加一个键,键名为前面生成的 GUID。
  3. 在以 GUID 命名的节点下,添加一个名为“/1”的节点,其(默认)值等于您要在 New Project(新建项目)和 Add New Project(添加新项目)对话框中显示的此文件夹的名称。在本例中,将文件夹命名为“TopLevelFolder”。
  4. 再在“/1”节点中添加两个子键。
    1. 第一个键是名为“SortPriority”的 DWORD 键。假设要始终先显示自定义文件夹,则将 SortPriority 的值指定为“0”。
    2. 第二个键是名为“TemplatesDir”的字符串键。其值是自定义项目文件夹的路径。在本例中,自定义项目显示在“D:\Public\Demo\EnterpriseFrameworks\ProxyProjects”文件夹中。如果网络共享位置有一套模板,也可以在此处指定其 UNC 路径。

在 Add New Item(添加新项)对话框中添加自定义文件夹

除了在 New Project(新建项目)和 Add New Project(添加新项目)对话框中添加新的顶层文件夹以外,还可以在 Add New Item(添加新项)对话框中添加新的文件夹。主要差别在于此对话框始终是针对特定语言的,因此需要根据自定义项目项的语言,将文件夹添加到适当位置。与在 New Project(新建项目)或 Add New Project(添加新项目)对话框中添加文件夹相比,在 Add New Item(添加新项)对话框中添加自定义文件夹的过程要简单得多。

所需步骤如下:

  • 找到所需语言的项目项文件夹。
  • 添加一个指向所创建的自定义文件夹的 .vsdir 文件。
    - 或者 -
    直接在项目项文件夹下创建子文件夹。
  • 将新项放在所创建的文件夹下。

查找项目项文件夹

ProjectItems 文件夹显示在语言安装文件夹中。默认的安装位置如下:

语言 ProjectItems 文件夹位置
Microsoft® Visual C++® C:\Program Files\Microsoft Visual Studio .NET\Vc7\vcprojectitems
Microsoft® Visual C#™ C:\Program Files\Microsoft Visual Studio .NET\VC#\CSharpProjectItems
Microsoft® Visual Basic® C:\Program Files\Microsoft Visual Studio .NET\Vb7\VBProjectItems
注意:Visual C++ 不一定安装在 Microsoft Visual Studio .NET 文件夹下。如果 Visual C++ ProjectItems 文件夹不在 Visual Studio .NET\Vc7 安装文件夹中,则可以在安装 Visual C++ 的文件夹中找到该文件夹。

创建自定义文件夹

有两种方法可以在 Add New Item(添加新项)对话框中添加自定义文件夹:可以添加指向自定义文件夹的 .vsdir 文件,也可以直接在 ProjectItems 文件夹中创建子文件夹。

如果创建指向位于其他位置的文件夹的 .vsdir 文件,则 .vsdir 文件的语法必须使用以下格式之一。

第一种选择:   FolderPath|PackageGUID|StringResourceID|SortOrder

第二种选择:   FolderPath|FolderName|SortOrder

第一种选择指向程序包 GUID 和字符串资源 ID。这样,您就可以在 Add New Item(添加新项)对话框中使用可以本地化的文件夹名称。如果不需要对名称进行本地化并且直接指定文件夹名称,则使用第二种选择要简单得多。在这两种情况下,都需要指定文件夹路径和排序顺序。文件夹路径是指向包含自定义项目项的文件夹的相对路径或绝对路径。排序顺序控制文件夹在 Add New Item(添加新项)对话框中的显示顺序。

您也可以采取一种最简单的方式,即将项目项放在标准项目项所在的文件夹下。此时无需创建指向文件夹的 .vsdir 文件,而是直接在适当语言的 ProjectItems 父文件夹中创建文件夹。在新的子文件夹中,添加指向该子文件夹中的自定义项目项的 .vsdir 文件。

添加新项

创建文件夹后,您可以在其中添加项,以便用户能够在 Add New Item(添加新项)对话框中使用这些项。

要查看所做的更改,请关闭并重新启动 Visual Studio。

有关示例,请参阅 Visual Studio .NET 文档的 Walkthrough: Creating a New Enterprise Template Building Block(英文)中的“Creating a Project Item Prototype”部分。

有关企业模板的详细信息,请参阅 Visual Studio .NET 文档中的 Enterprise Templates for Distributed Applications(英文)。

posted on 2005-07-22 12:13  forrestsun  阅读(750)  评论(0编辑  收藏  举报