使用 .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
禁用此项目或项的名称字段。