打包和部署自定义 My 扩展

更新:2007 年 11 月

Visual Basic 提供了一种通过使用 Visual Studio 模板来部署自定义 My 命名空间扩展的简便方法。对于您的 My 扩展为其必要组成部分的新项目类型,如果要为其创建项目模板,则只需要在导出模板时,将您的自定义 My 扩展代码包括在该项目中。有关导出项目模板的更多信息,请参见如何:创建项目模板

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

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

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

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

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

创建 My 命名空间扩展

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

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

创建了包含您的 My 命名空间扩展的代码文件后,就可以将该代码文件导出为 Visual Studio 项模板。有关如何将文件导出为 Visual Studio 项模板的说明,请参见如何:创建项模板

说明:

如果 My 命名空间扩展具有对特定程序集的依赖项,则您可自定义您的项模板,从而在添加对该程序集的引用时,自动安装您的 My 命名空间扩展。这样,您就可在将代码文件导出为 Visual Studio 项模板时,将该程序集引用排除在外。

自定义项模板

您可通过自定义,来从 Visual Basic 项目设计器的“My 扩展”页管理您的项模板。您还可通过自定义,从而在向项目添加对指定程序集的引用时,自动添加项模板。若要启用这些自定义,则请将名称为 CustomData 文件的新文件添加到模板,然后将新元素添加到您的 .vstemplate 文件的 XML。

添加 CustomData 文件

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

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

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

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

  • ID
    必需。扩展的唯一标识符。如果具有此 ID 的扩展已被添加到项目中,则将不会提示用户再次添加。

  • Version
    必需。项模板的版本号。

  • AssemblyFullName
    可选。一个程序集名称。在向项目添加对此程序集的引用时,将提示用户从此项模板添加 My 扩展。

向 .vstemplate 文件添加 <CustomDataSignature> 元素

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

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

您不能直接修改压缩文件夹(.zip 文件)中的文件。而必须先复制压缩文件夹中的 .vstemplate 文件,接着修改该文件,然后用更新后的副本替换压缩文件夹中的 .vstemplate 文件。

下面的示例演示了添加了 <CustomDataSignature> 元素的 .vstemplate 文件的内容。

<VSTemplate Version="2.0.0" xmlns="https://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 项模板文件夹(例如,My Documents\Visual Studio 2008\Templates\Item Templates\Visual Basic)中。另外,还可将模板发布为 Visual Studio 安装程序 (.vsi) 文件。有关将您的模板发布为 Visual Studio 安装程序文件的信息,请参见如何:发布项目模板

请参见

概念

扩展 Visual Basic 中的 My 命名空间

扩展 Visual Basic 应用程序模型

自定义 My 中可用的对象

参考

“项目设计器”->“My 扩展”页 (Visual Basic)