VSIX 扩展架构 2.0 参考

VSIX 部署清单文件描述 VSIX 包的内容。 文件格式由模式管理。 此模式的版本 2.0 支持添加自定义类型和属性。 模式清单是可扩展的。 清单加载程序将忽略它不了解的 XML 元素和特性。

重要

Visual Studio 2012 将填满 2010 和 2011 中描述的 VSIXs 格式。

包清单架构

清单 XML 文件中的根元素为 <PackageManifest>,用单个属性 Version,为不同格式的版本。 如果主要更改对布局,将更改版本形式。 本主题描述不同格式 2.0 版中,清单指定将设置为值 Version=” 2.0 " 的 Version 属性。

PackageManifest 元素

在 <PackageManifest> 根元素中,可以使用以下元素:

  • <Metadata> - 元数据和广告信息有关包。 只有一个 Metadata 组件清单中允许的。

  • <Installation> - 本节定义了此扩展包可以安装的方式,包括它可以安装的应用程序 SKU。 只有一个 Installation 组件清单中允许的。 清单必须具有 Installation 元素,否则此包不会安装到任何 SKU。

  • <Dependencies> - 选项列表此包的依赖项定义此处。

  • <Assets> - 本节包含此包中包含的所有资产。 如果没有此部分,此包不会出现任何内容。

  • <AnyElement>* - 该清单架构的灵活性足以允许任何其他组件。 清单加载程序不识别的所有子元素在扩展管理器 API 显示为额外的 XmlElement 对象。 使用这些子元素, VSIX 扩展可以定义代码在 Visual Studio 中运行时访问在运行时在清单文件的其他数据。 请参见 AdditionalElementsLocalizedAdditionalElements

元数据组件

本节是有关包、其标识和广告信息的元数据。 <Metadata> 包含以下元素:

  • <Identity> - 用于定义此包的定位信息并包括以下属性:

    • Id –此属性必须是其作者选择的包的唯一 ID。 应限定名称相同的方式类型 namespaced 的 CLR:Company.Product.Feature.Name. Id 属性绑定到 100 个字符。

    • Version –用于定义此包及其内容的版本。 此属性按照 CLR 程序集版本控制格式:Major.Minor.Build.Revision (1.2.40308.00)。 对于版本号的包被视为更新到包,可以安装在现有安装的版本。

    • Language –此特性为包的默认语言和对应于此清单的文本数据。 (该属性遵循资源程序集的 CLR 区域设置代码约定,例如:en-us, en, fr-fr。 可以指定 neutral 声明在 Visual Studio 的任何版本上运行的非特定语言的扩展。 默认值为 neutral。

    • Publisher –此特性标识此包的发行者,公司或单个名称。 Publisher 属性绑定到 100 个字符。

  • <DisplayName> - 此元素指定在扩展管理器 UI 中显示的用户友好的包的名称。 DisplayName 内容被限制为 100 个字符。

  • <Description> - 此可选元素是在扩展管理器 UI 显示包及其内容的简短说明。 Description 内容可以包含所需的所有文本,但是,它会限制到 1000 个字符。

  • <MoreInfo> - 此可选元素联机是 URL。包含此包的完整说明的页。 必须指定作为 HTTP 协议。

  • <License> - 此可选元素是相对路径到包中包含的许可证文件 (.txt, .rtf) 或 URL 到包含该许可证的网站。

  • <ReleaseNotes> - 此可选元素是或相对路径到包中包含的发布文档 (.txt, .rtf) 或 URL 以显示释放声明的网站。

  • <Icon> - 此可选元素是相对路径到包 (png, bmp, jpeg, ico) 包含的图像文件。 图标图像应当是 32x32 像素 (或将缩小为该范围) 并显示在 listview UI。 如果 Icon 元素未指定,则 UI 使用一个默认值。

  • <PreviewImage> - 此可选元素是相对路径到包 (png, bmp, jpeg) 包含的图像文件。 预览图像在详细信息 UI 应为 200x200 像素并显示。 如果 PreviewImage 元素未指定,则 UI 使用一个默认值。

  • <Tags> - 此可选元素列表搜索提示使用的其他分号分隔的文本标记。 Tags 元素被限制为 100 个字符。

  • <GettingStartedGuide> - 此可选元素是一个在此包中的相对路径为 HTML 文件或 URL 到包含有关如何使用此扩展或目录的网站。 作为安装的一部分,本指南生成。

  • <AnyElement>* - 该清单架构的灵活性足以允许任何其他组件。 不受清单加载程序识别的所有子元素显示为 XmlElement 对象的列表。 使用这些子元素, VSIX 扩展可以定义在清单文件的其他数据和枚举它们在运行时。

安装组件

本节定义了可以安装和应用程序 SKU 它可以安装此包的方式。 本节包含下列属性:

  • Scope –此特性可以采用 “全局”中的值或 “ProductExtension”:

    • “全局”指定安装未作用于特定 SKU。 例如,此值,安装后,使用扩展 SDK。

    • “ProductExtension”指定作用于单个 Visual Studio SKU 安装传统 VSIX 扩展 (1.0 版)。 这是默认值。

  • AllUsers –此可选特性指定此包是否为所有用户安装。 默认情况下,此属性是错误的,指定包是每个用户。 (将该值设置为 true,则安装的用户必须提升到管理权限级别安装发生的 VSIX 中。

  • InstalledByMsi –此可选特性指定 MSI 是否已安装此包。 Visual Studio 扩展管理器安装 MSI 安装的包和管理由 MSI (过程和函数) 和不。 默认情况下,此属性是错误的,指定 MSI 未安装程序包。

  • SystemComponent –此可选特性指定是否应将此包系统组件。 系统组件在扩展管理器 UI 不显示,也不能更新。 默认情况下,此属性是错误的,指定包不是系统组件。

  • AnyAttribute* – Installation 元素接受无限制将在运行时设置属性,名称/值对字典。

  • <InstallationTarget> –此元素控制 VSIX 安装程序安装程序包的位置。 如果 Scope 属性的值为 “ProductExtension”包必须以安装清单文件作为其内容的一部分对其可用性播发到扩展的 SKU。 ,当 Scope 属性具有显式或 default “ProductExtension”时, <InstallationTarget> 元素具有以下特性:

    • Id –此特性标识包。 属性遵循命名约定:Company.Product.Feature.Name. Id 属性只能包含字母数字字符仅限于 100 个字符。 预期值:

      • Microsoft.VisualStudio.IntegratedShell

      • Microsoft.VisualStudio.Pro

      • Microsoft.VisualStudio.Premium

      • Microsoft.VisualStudio.Ultimate

      • Microsoft.VisualStudio.VWDExpress

      • Microsoft.VisualStudio.VPDExpress

      • Microsoft.VisualStudio.VSWinExpress

      • Microsoft.VisualStudio.VSLS

      • My.Shell.App

    • Version –此特性指定与此 SKU 的最小值和最大值支持的版本个版本的大小。 包可以详细它支持 SKU 的版本。 版本范围表示法是 [– 10.0 11.0],其中:

      • ] –包含最大的版本。

      • (- 最低版本排除。

      • ) –最大版本排除。

      • 唯一版本 # (最小值支持具有无限制最大的版本。

    • AnyAttribute* – <InstallationTarget> 元素允许无限制将在运行时设置属性,名称/值对字典。

依赖项元素

此元素包含此包声明的依赖项列表。 如果任何依赖项中指定,必须在之前安装这些包 (由其 Id)。

  • <Dependency> 组件 –此子元素具有以下特性:

    • Id –此属性必须是依赖包的唯一 ID。 此标识值必须与包的 <Metadata><Identity>Id 属性此包依赖打开。 Id 属性遵循命名约定:Company.Product.Feature.Name. 属性只能包含字母数字字符仅限于 100 个字符。

    • Version –此特性声明包指定版本的范围此包依赖打开。 版本范围表示法是 [– 1.02.1):

      • [- 包含的最低版本。

      • ] –包含最大的版本。

      • (- 最低版本排除。

      • ) –包含最大的版本。

      • 唯一版本 # (最小值支持具有无限制最大的版本。

    • DisplayName - 此属性是用于用户界面元素 (如对话框和错误消息相关的包的显示名称。 ,除非 MSI,安装依赖包的属性是可选的。

    • Location –此可选特性指定此 VSIX 中的相对路径嵌套的 VSIX 包或 URL 下载位置为依赖项。 此特性用于帮助用户找到系统必备组件包。

    • AnyAttribute* – Dependency 元素接受无限制将在运行时设置属性,名称/值对字典。

属性元素

此元素包含 <Asset> 标记列表此包图面的每个扩展或内容元素的。

  • <Asset> - 此元素包含以下特性和元素:

    • Type –这是此元素或内容的表示类型的扩展。 每个 <Asset> 元素必须具有唯一 Type,但是,多个 <Asset> 元素可以有相同的 Type。 应表示此属性作为完全限定名,具体取决于命名约定。 已知类型是:

      1. Microsoft.VisualStudio.Package

      2. Microsoft.VisualStudio.MefComponent

      3. Microsoft.VisualStudio.ToolboxControl

      4. Microsoft.VisualStudio.Samples

      5. Microsoft.VisualStudio.ProjectTemplate

      6. Microsoft.VisualStudio.ItemTemplate

      7. Microsoft.VisualStudio.Assembly

      您可以创建自己的类型,并提供自己唯一的名称。 在 Visual Studio 内运行时,您的代码可以通过扩展管理器 API 枚举和访问这些自定义类型。

    • 路径 –文件或文件夹的相对路径在一个名为的包中。

    • AnyAttribute* –无限制将在运行时设置属性,名称/值对字典。

      <AnyElement>* –所有构造的内容允许在 <Asset> 之间开始和结束标记。 所有元素显示为 XmlElement 对象的列表。 VSIX 扩展可以定义在清单文件的结构化特定于类型的元数据和枚举它们在运行时。

清单的示例

<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0">
  <Metadata>
    <Identity Version="2.1.40307.0" Id="Fabrikam.Application.Extension1" Language="us-en" Publisher="Fabrikam" />
    <DisplayName>Test Extension Package</DisplayName>
    <Description>This is my extension description.</Description>
    <MoreInfo>http://www.fabrikam.com/Extension1/</MoreInfo>
    <License>eula.rtf</License>
    <ReleaseNotes>notes.txt</ReleaseNotes>
    <Icon>Images\icon.png</Icon>
    <PreviewImage>Images\preview.png</PreviewImage>
    <Tags>foo, bar</Tags>
    <GettingStartedGuide>http://www.fabrikam.com/guide.htm</GettingStartedGuide>
  </Metadata>
  
  <Installation AllUsers="false" SystemComponent="false">
      <InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[10.0-11.0]" />
  </Installation>
  
  <Dependencies>
    <Dependency Id="another.package" Version="[1.2-2.0)" />
    <Dependency Id="Microsoft.Framework.NDP" Version="[4.0-5.0)" />
    <Dependency Id="mypackage.package" Version="[1.0-2.0)" DisplayName="MyCoolTool" Location="http://www.fabrikam.com/download/mycooltool.msi" />
  </Dependencies>
  
  <Assets>
    <Asset Type="Microsoft.VisualStudio.Package" Path="mypackage.pkgdef" />
    <Asset Type="Microsoft.VisualStudio.MEFComponent" Path="mycomponent.dll" />
    <Asset Type="Microsoft.VisualStudio.ToolboxControl" Path="mycontrol.pkgdef" />
  </Assets>
</PackageManifest>

请参见

其他资源

VSIX 部署