打包和部署自定义“我的扩展”(Visual Basic)

Visual Basic 提供了一种使用 Visual Studio 模板部署自定义 My 命名空间扩展的简单方法。 如果要创建一个项目模板,并且你的 My 扩展是新项目类型的核心组成部分,则在导出模板时,只需将自定义 My 扩展代码包含在项目中。 有关导出项目模板的详细信息,请参阅 如何:创建项目模板

如果自定义 My 扩展位于单个代码文件中,则可以将该文件导出为用户可以添加到任何类型的 Visual Basic 项目的项模板。 然后,可以自定义项模板,以便在 Visual Basic 项目中为自定义 My 扩展启用其他功能和行为。 这些功能包括:

  • 允许用户从 Visual Basic 项目设计器的My”页管理自定义扩展。

  • 向项目添加对指定程序集的引用时,自动添加自定义 My 扩展。

  • 隐藏“My”对话框中的扩展项模板,使其不包含在项目项列表中。

本主题讨论如何将自定义 My 扩展打包为可从 Visual Basic 项目设计器的 “我的扩展 ”页管理的隐藏项模板。 当向项目添加对指定程序集的引用时,也可以自动添加自定义 My 扩展。

创建“我的命名空间”扩展

为自定义 My 扩展创建部署包的第一步是将扩展创建为单个代码文件。 有关如何创建自定义 My 扩展的详细信息和指南,请参阅 在 Visual Basic 中扩展“我的命名空间”。

将 My 命名空间扩展作为项模板导出

获得包含 My 命名空间扩展的代码文件后,可以将代码文件导出为 Visual Studio 项模板。 有关如何将文件导出为 Visual Studio 项模板的说明,请参阅 “如何:创建项模板”。

注释

My如果命名空间扩展依赖于特定程序集,则可以自定义项模板,以在添加对该程序集的引用时自动安装My命名空间扩展。 因此,在将代码文件导出为 Visual Studio 项模板时,需要排除该程序集引用。

自定义项模板

可以从 Visual Basic 项目设计器的 “我的扩展 ”页管理项目模板。 当向项目添加对指定程序集的引用时,还可以启用自动添加项模板。 若要启用这些自定义项,需要向模板添加新文件(称为 CustomData 文件),然后将新元素添加到 .vstemplate 文件中的 XML。

添加 CustomData 文件

CustomData 文件是文件扩展名为 . 的文本文件。CustomData(文件名可以设置为任何对模板有意义的值),并且包含 XML。 当用户使用 Visual Basic 项目设计器的My”页时,CustomData 文件中的 XML 指示 Visual Basic 包含扩展。 可以选择将 <AssemblyFullName> 属性添加到 CustomData 文件 XML。 这指示 Visual Basic 在向项目添加对特定程序集的引用时自动安装自定义 My 扩展。 可以使用任何文本编辑器或 XML 编辑器创建 CustomData 文件,然后将其添加到项目模板的压缩文件夹(.zip 文件)。

例如,以下 XML 显示 CustomData 文件的内容,当向项目添加对 Microsoft.VisualBasic.PowerPacks.Vs.dll 程序集的引用时,该文件会将模板项添加到 Visual Basic 项目的“我的扩展”文件夹中。

<VBMyExtensionTemplate
    ID="Microsoft.VisualBasic.Samples.MyExtensions.MyPrinterInfo"
    Version="1.0.0.0"
    AssemblyFullName="Microsoft.VisualBasic.PowerPacks.vs"
/>

CustomData 文件包含具有 <VBMyExtensionTemplate> 下表中列出的属性的元素。

特征 DESCRIPTION
ID 必填。 扩展的唯一标识符。 如果已将具有此 ID 的扩展添加到项目中,则不会提示用户再次添加它。
Version 必填。 物品模板的版本号。
AssemblyFullName 可选。 程序集名称。 将对此程序集的引用添加到项目时,系统将提示用户从此项目模板中添加 My 扩展。

将 <CustomDataSignature> 元素添加到 .vstemplate 文件

若要将 Visual Studio 项模板标识为 My 命名空间扩展,还必须修改项模板的 .vstemplate 文件。 必须将<CustomDataSignature>元素添加到<TemplateData>元素中。 元素 <CustomDataSignature> 必须包含文本 Microsoft.VisualBasic.MyExtension,如以下示例所示。

<CustomDataSignature>Microsoft.VisualBasic.MyExtension</CustomDataSignature>

不能直接修改压缩文件夹中的文件(.zip 文件)。 必须从压缩文件夹中复制 .vstemplate 文件,对其进行修改,然后将压缩文件夹中的 .vstemplate 文件替换为更新的副本。

以下示例显示了在 .vstemplate 文件中添加了 <CustomDataSignature> 元素的内容。

<VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">
  <TemplateData>
    <DefaultName>MyCustomExtensionModule.vb</DefaultName>
    <Name>MyPrinterInfo</Name>
    <Description>Custom My Extensions Item Template</Description>
    <ProjectType>VisualBasic</ProjectType>
    <SortOrder>10</SortOrder>
    <Icon>__TemplateIcon.ico</Icon>
    <CustomDataSignature      >Microsoft.VisualBasic.MyExtension</CustomDataSignature>
  </TemplateData>
  <TemplateContent>
    <References />
    <ProjectItem SubType="Code"
                 TargetFileName="$fileinputname$.vb"
                 ReplaceParameters="true"
     >MyCustomExtensionModule.vb</ProjectItem>
  </TemplateContent>
</VSTemplate>

安装模板

若要安装模板,可以将压缩文件夹(.zip 文件)复制到 Visual Basic 项目模板文件夹。 默认情况下,用户项模板位于 %USERPROFILE%\Documents\Visual Studio <Version>\Templates\ItemTemplates\Visual Basic 中。 或者,可以将模板发布为 Visual Studio Installer (.vsi) 文件。

另请参阅