使用 .Vsdir 文件为“添加项”和“新建项目”对话框添加向导

Visual Studio 2013 中已弃用 Visual Studio 的外接程序。 你应该升级外接程序到 VS 的扩展包。 有关升级的更多信息,请参见 。常见问题:将外接程序转换为 VSPackage 扩展

VSDir 文件是扩展名为 .vsdir 的文本文件,创建此文件以提供有关如何将各个项显示到**“添加项”“新建项目”对话框的信息。 此信息包括项的名称、项的出现顺序以及与项一起显示的图标。 其中任何一项均可以更改。 VSDir 文件用于向“添加项”“新建项目”**对话框添加新模板或新向导。

没有默认的 VSDir 文件。 如果存在这样的一个文件,则 Visual Studio 读取它并将其内容添加到对话框。 否则,将显示默认的模板和向导。 在单个目录中可以有多个 VSDir 文件,而且这些文件的所有内容都将添加到对话框。 通常,单个 VSDir 文件包含多个向导、文件夹和模板的记录。 文件中的每个记录由换行符分隔。 每个记录中的字段由管道 (|) 字符分隔。 对于不包含有意义数据的任何可选字段,它们应包含零 (0) 或一个空格作为占位符。 在输入到字段中的字符串两边不需要加引号。

VSDir 文件组件

下面是 VSDir 文件示例。 第一个示例引用了在主题 演练:创建向导 中创建的单个向导:

MyNewWizard.vsz| |A New Wizard|1|My New Wizard|C:\Addins\MyNewWizard\MyNewWizard\bin\Debug| | |MyNewWizard99

下一个 VSDir 文件示例引用了多个向导 .vsz 文件,以及有关每个向导的其他相关信息(在本主题下文描述)。 这些文件与上一个 VSDir 文件的不同之处在于,这些文件引用字符串作为资源 ID 号,而不是引用字符串文本。 而且,它们还使用 GUID 来引用 DLL。

..\..\Projects\csharp building blocks\BusinessFacade.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5015|10|#5022|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|127|0|Project
..\..\Projects\csharp building blocks\BusinessRules.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5016|20|#5023|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|128|0|Project
..\..\Projects\csharp building blocks\DataAccess.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5017|30|#5024|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|129|0|Project
..\..\Projects\csharp building blocks\SystemFrameworks.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5018|40|#5025|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|130|0|Project
..\..\Projects\csharp building blocks\WebService.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5019|50|#5026|{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}|4547|1|WebService|Web
..\..\Projects\csharp building blocks\WebUI.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5020|60|#5027|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|131|1|WebUI|web
..\..\Projects\csharp building blocks\WinUI.vsz|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|#5021|70|#5028|{AE77B8D0-6BDC-11d2-B354-0000F81F0C06}|132|0|Project

可为 VSDir 文件中的每个记录指定下列字段:

字段

含义

RelPathName

必需。 向导的 .vsz 文件的名称(如 MyWizard.vsz),此文件与 Visual Studio 安装目录有关。

{clsidPackage}

可选。 表示产品的 GUID,该产品(如 Visual C++)带有的 DLL 中包含本地化资源。 通常,对于符合第三方向导的 VSDir 文件,此字段为空。

LocalizedName

可选。 这是向导或模板的可本地化的名称以及出现在“添加项”对话框中的名称。 它可以是字符串或 #ResID 形式的资源标识符。

SortPriority

必需。 表示向导的排序顺序和相对优先级的整数,1 为最高。 例如,如果此项为“1”,那么它出现在其他 1 之后和所有 2 或更低级别之前。

描述

必需。 当选定项后,将在“添加项”对话框中显示的模板或向导的可本地化说明。 它可以是字符串或 #ResID 形式的资源标识符。 仅应用于模板文件,不应用于文件夹。

DLLPath 或 {clsidPackage}

必需。 指定到 DLL 或 EXE 文件的完整路径,或产品的 GUID,该产品所带的 .dll 文件包含要为向导加载的图标。 该图标使用给定的 IconResourceId 作为 DLL/EXE 文件外部的资源加载。 此设置重写图标位置的 {clsidPackage}(如果已指定)。 仅应用于模板文件,不应用于文件夹。

IconResourceId

可选。 DLL 文件内确定要显示的图标的资源标识符。 如果未定义图标,环境用默认图标替代与该项具有相同扩展名的文件。 仅应用于模板文件,不应用于文件夹。

Flags

可选。 请参见下面的 Flags 说明和表。 仅应用于模板文件,不应用于文件夹。

SuggestedBaseName

必需。 在对话框的“名称”字段中显示的向导的默认名称。 它是字符串或 #ResID 形式的资源标识符。 如果该名称不是唯一的,那么环境将为该名称追加一个整数。 例如,MyFile.aspx 可能更改为 MyFile1.aspx。 如果未提供名称,那么使用“Project”。 仅应用于模板文件,不应用于文件夹。

  • 注释
    任何没有有含义的数据的非必选字段应包含零 (0) 作为占位符。

    如果未提供本地化名称,则使用相对路径。

    如果未定义图标,则 IDE 用该扩展名替换文件的默认图标。

    如果未提供建议的基名称,则使用“Project”。

  • Flags
    一组用于启用或禁用**“添加项”对话框中的“名称”“位置”字段的位标志。 也就是说,当用户从“添加”菜单中选择“添加新项”时,项目将决定名称和位置是否显示在“模板”**窗格上,而标志将决定名称和位置是否可由用户使用。

    将 Flags 的值设置为各个值的和。 即 33 等于 VSDIRFLAG_NonLocalTemplate | VSDIRITEM_DisableLocationField。

    标志名称

    十进制值

    描述

    VSDIRFLAG_NonLocalTemplate

    1

    使用非本地用户界面行为和保存机制。

    VSDIRFLAG_BlankSolution

    2

    创建空白(空)解决方案。 不创建项目。

    VSDIRFLAG_DisableBrowseButton

    4

    对此项目或项禁用“浏览”按钮。

    VSDIRFLAG_DontAddDefExtension

    8

    不将默认扩展名追加到为项提供的名称中。(此设置对项目无效。)

    VSDIRFLAG_DisableLocationField

    32

    禁用此项目或项的位置字段。

    VSDIRFLAG_DontInitNameField

    4096

    不用有效的名称初始化此项目或项的名称字段。

    VSDIRFLAG_DisableNameField

    8192

    禁用此项目或项的名称字段。

请参见

任务

如何:创建外接程序

演练:创建向导

概念

设计向导

配置 .Vsz 文件来启动向导

其他资源

创建外接程序和向导