Поделиться через


Справочник по схеме расширения VSIX версии 2.0

Файл манифеста развертывания VSIX описывает содержимое пакета VSIX. Формат файла управлен схемой. Версия 2,0 этой схемы поддерживает добавление пользовательских типов и атрибуты. Схема манифеста может быть расширена. Загрузчик манифеста не учитываются элементы и атрибуты xml, которые он не поддерживает.

Важно!

Visual Studio 2012 загружает VSIXs, описанное в качестве формата 2010 и 2011.

Схема манифеста пакета

Корневой элемент XML-файл манифеста <PackageManifest>, с одним атрибутом Version, версия формата манифеста. Если внесены значительные изменения в формат, то формат версии будет изменен. В этом подразделе описывается очевидную формата версии 2.0, определена в манифесте, установив атрибут Version к значению Version=» 2,0 ".

Элемент PackageManifest

Внутри корневой элемент <PackageManifest> можно использовать следующие элементы:

  • <Metadata> - метаданные и данные рекламы о пакете. Допускается только один элемент Metadata в манифесте.

  • <Installation> - этот раздел определяет способ этот пакет расширения может устанавливаться, включая SKU приложения, он может устанавливать. Допускается только один элемент Installation в манифесте. Манифест должен иметь элемент Installation или не устанавливает этот пакет в любое SKU.

  • <Dependencies> - необязательный список зависимостей для данного пакета определяется здесь.

  • <Assets> - этот раздел содержит все активов, содержащихся в этом пакете. Без этого раздела, данный пакет не отделает области содержимого.

  • <AnyElement>* - схема манифеста гибка достаточно, чтобы разрешить любые другие элементы. Все дочерние элементы не распознаются загрузчиком манифеста доступны в API диспетчера расширений в качестве дополнительных объектов XmlElement. Используя эти дочерние элементы расширения VSIX может указать дополнительные данные в файле манифеста, выполнение кода в Visual Studio может получить доступ во время выполнения. См. разделы AdditionalElements и LocalizedAdditionalElements.

Элемент метаданных

Этот раздел метаданные о пакете, своем коде и рекламы. <Metadata> содержит следующие элементы:

  • <Identity> - это указывает данные идентификации для данного пакета, и включает следующие атрибуты:

    • Id – этот атрибут должен быть уникальным идентификатором для выбранного его автором пакета. Имя должно быть уточнено аналогичным образом типы среды CLR namespaced: Company.Product.Feature.Name. Атрибут Id ограничен 100 символов.

    • Version – это указывает версию этого пакета и его содержимое. Этот атрибут следует форматом управления версиями сборки CLR: Major.Minor.Build.Revision (1.2.40308.00). Пакет с более высоким номером версии считается обновлениями к пакету и может быть устанавливается на существующие устанавливанной версией.

    • Language – этот атрибут в качестве языка по умолчанию для пакета и соответствует текстуальным данным в этом манифесте. Этот атрибут следует кодовым обозначением языкового стандарта среды CLR для сборок ресурсов, например: ru-ru "en", fr-fr. Можно указать neutral для объявления расширения не зависящие от языка, выполняемое в любой версии Visual Studio. Значение по умолчанию — neutral.

    • Publisher – этот атрибут задает издателя этого пакета или компания или отдельное имя. Атрибут Publisher ограничен 100 символов.

  • <DisplayName> - этот элемент определяет дружественное имя пакета, которые отображаются в пользовательском интерфейсе диспетчера расширений. Содержимое DisplayName ограничена 100 символами.

  • <Description> - этот необязательный элемент краткое описание пакета и его содержимом, который отображается в пользовательском интерфейсе диспетчера расширений. Содержимое Description может содержать любой текст, который требуется, однако оно limited до 1000 символов.

  • <MoreInfo> - этот необязательный элемент url-адреса на подключенный объект страницы, содержащий полное описание данного пакета. Необходимо указать как протокол http.

  • <License> - этот необязательный элемент или относительный путь к файлу лицензии, содержащиеся в пакете (.txt, .rtf) или URL-адрес к вебсайту, содержащий лицензию.

  • <ReleaseNotes> - этот необязательный элемент или относительный путь к файлу заметок о выпуске, содержащиеся в пакете (.txt, .rtf) или же URL-адрес вебсайту, указывающее заметки о выпуске.

  • <Icon> - этот необязательный элемент относительный путь к файлу изображения (PNG, bmp, JPEG (ico), содержащихся в пакете. Изображение значка размером 32x32 должен быть точек (или сжимает к этому размеру) и отображается в пользовательском интерфейсе listview. Если нет элемента Icon не указан, то пользовательский интерфейс использует значение по умолчанию.

  • <PreviewImage> - этот необязательный элемент относительный путь к файлу изображения (PNG, bmp, JPEG), содержащихся в пакете. Изображение представления должно быть точек 200x200 и отображаются в пользовательском интерфейсе в виде таблицы. Если нет элемента PreviewImage не указан, то пользовательский интерфейс использует значение по умолчанию.

  • <Tags> - теги данного текст списков необязательный элемент дополнительных разделенных точкой с запятой-размежеванные, которые используются для поиска намекают. Элемент Tags ограничен 100 символов.

  • <GettingStartedGuide> - этот необязательный элемент в HTML-файл или относительный путь или URL-адрес к вебсайту, содержащий сведения о том, как использовать расширение или содержимого в этот пакет. В этом руководстве будет запущена как часть установки.

  • <AnyElement>* - схема манифеста гибка достаточно, чтобы разрешить любые другие элементы. Все дочерние элементы, которые не распознаются загрузчиком манифеста доступны как список объектов XmlElement. Используя эти дочерние элементы расширения VSIX может указать дополнительные данные в файле манифеста и вывести их во время выполнения.

Элемент установки

Этот раздел определяет способ этот пакет можно устанавливать и SKU приложения, он может устанавливать. Этот раздел содержит следующие атрибуты:

  • Scope – этот атрибут может принимать значение «global» или «ProductExtension»:

    • «Global» указывает, что программа установки находятся в области видимости определенной SKU. Например, это значение используется, когда пакет SDK для расширения устанавливается.

    • «ProductExtension» указывает на то, что устанавливается традиционное расширение VSIX (версия 1.0) относится к отдельным SKU Visual Studio. Это значение по умолчанию.

  • AllUsers – этот необязательный атрибут указывает, является ли данный пакет устанавливается для всех пользователей. По умолчанию этот атрибут имеет значение false, который указывает, что пакет для каждого пользователя. (При установке это значение true, при установлении пользователь должен без до уровня привилегии администратора для настройки результирующего VSIX.

  • InstalledByMsi – этот необязательный атрибут определяет, устанавливается ли этот пакет MSI. Пакеты устанавливанные MSI устанавливаются и управляемые программы и функции (MSI), а не диспетчером расширений Visual Studio. По умолчанию этот атрибут имеет значение false, который указывает, что пакет не устанавливается MSI.

  • SystemComponent – этот необязательный атрибут указывает, должен ли пакет быть учитывается элементом системы. Компоненты системы не отображаются в пользовательском интерфейсе диспетчера расширений и не могут быть обновлены. По умолчанию этот атрибут имеет значение false, который указывает, что пакет не является элементом системы.

  • AnyAttribute* – элемент Installation принимает беступиковый набор атрибутов, предоставляемых во время выполнения как словарь пар " имя-значение ".

  • <InstallationTarget> – этот элемент отслеживает расположение, в котором установщик VSIX устанавливает пакет. Если значение атрибута Scope «ProductExtension», то пакет целевой объект SKU, отражаемого файл манифеста в качестве части его содержимого позволяет объявлять свою доступность к расширениям. Элемент <InstallationTarget> имеет следующие атрибуты, когда атрибут Scope имеет явную или значение по умолчанию - «ProductExtension»:

    • 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], где:

      • ] – максимальную версию включающей.

      • (взаимоисключающими минимальной версии.

      • Максимальный) – exclusive версии.

      • Одна версия # - минимум, поддерживаемые версию с максимальным unbounded.

    • AnyAttribute* – элемент <InstallationTarget> позволяет беступиковый набор атрибутов, предоставляемых во время выполнения как словарь пар " имя-значение ".

Элемент зависимостей

Этот элемент содержит список зависимостей, этот пакет объявляет. Если какие-либо зависимости, то эти пакеты (определяются их Id) необходимо устанавливать перед данным.

  • Элемент <Dependency> – этот дочерний элемент имеет следующие атрибуты.

    • Id – этот атрибут должен быть уникальным идентификатором для зависимого пакета. Это значение идентификатора должно совпадать с атрибутом <Metadata><Identity>Id пакета, что этот пакет от которых зависит. Атрибут Id следуйте соглашению пространства имен: Company.Product.Feature.Name. Атрибут может содержать только алфавитно-цифровые символы и ограничен 100 символов.

    • Version – этот атрибут объявляется указанный диапазон версии пакета, что этот пакет от которых зависит. Версии [1,0 – нотация диапазона : 2,1)

      • [- минимальная версия включающей.

      • ] – максимальную версию включающей.

      • (взаимоисключающими минимальной версии.

      • ) – максимальную версию включающей.

      • Одна версия # - минимум, поддерживаемые версию с максимальным unbounded.

    • 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