PackageManifest Element (Root Element, VSX Schema)

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Required. Provides the root element for a manifest that describes a Visual Studio extension deployment package. The manifest contains the information that Extension Manager uses to install the extension on a target computer.

<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="1.0">
  <Metadata>... </Metadata>
   <InstallationTargets>... </InstallationTargets>
   <Dependencies>... </Dependencies>
   <Assets>... </Assets>

Attributes and Elements

The following sections describe attributes, child elements, and parent elements.





The version of the manifest format.

Version Attribute




Required. The version of the manifest format. For Visual Studio 2011, use 1.0.

Child Elements



Metadata Element

Required. Contains metadata and advertising information about the package itself. There is only one metadata tag allowed in the manifest.

InstallationTargets Element

Required. Describes how this extension package can be installed, including the application SKUs that it can install into. Only a single InstallationTargets element is allowed in the manifest. Without an InstallationTargets element, this package cannot install into any SKUs.

Dependencies Element

Optional. A list of dependencies for this package are defined here. [optional]

Assets Element

Required. Lists all of the assets contained within this package. Without this element, this package cannot surface any extensions or content.

AnyElement Element

Optional. The manifest schema is flexible enough to allow any other elements. Any elements not listed above can be listed here. These elements are exposed as extra XmlElement objects. Future extensions can define additional data in the manifest file, and enumerate it at runtime.

Parent Elements





Any child elements not listed above are exposed as extra XmlElement objects to the VSIX Manifest API.

The Vsix manifest file must be named extension.vsixmanifest when residing in a VSIX package. When using the project templates in the Visual Studio SDK, the Vsix manifest is named source.extension.vsixmanifest in the project, and then is built as extension.vsixmanifest in the build output.


The following VSIX manifest installs a test component.

<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="1.0">
    <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>
    <Tags>foo, bar</Tags>
  <InstallationTargets AllUsers="false" SystemComponent="false">
      <InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[10.0-11.0]" />
    <Dependency Id="another.package" Version="[1.2-2.0)" CanAutoDownload="true" IsRequired="true" />
    <Dependency Id="Microsoft.Framework.NDP" Version="[4.0-5.0)" CanAutoDownload="false" IsRequired="true" />
    <Dependency Id="foo.package" Version="[1.0-2.0)" DisplayName="CoolTool" Location="" AutoDownload="false" />
    <Asset Type="Microsoft.VisualStudio.Package" Path="foo.pkgdef" />
    <Asset Type="Microsoft.VisualStudio.MEFComponent" Path="foo.dll" />
    <Asset Type="Microsoft.VisualStudio.Sample" Path="foo\MySample.sln" />
    <Asset Type="Microsoft.VisualStudio.Control" Path="control.pkgdef" />

Element Information


Schema Name

Vsix Manifest

Validation File


Can be Empty


See Also

Other Resources

VSIX Extension Schema Reference

Visual Studio Extension Deployment