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) 文件。