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


Регистрация надстройки

Использовать надстройки Visual Studio в Visual Studio 2013 не рекомендуется. Следует обновить надстройки до расширений VSPackage. Дополнительные сведения об обновлении см. в разделе Часто задаваемые вопросы. Преобразование надстроек в расширения VSPackage.

После создания надстройки ее необходимо зарегистрировать в Visual Studio, прежде чем ее можно будет активировать, используя Диспетчер надстроек. Для этого используется XML-файл с расширением имени файла .ADDIN.

Этот файл с расширением ADDIN содержит описание сведений, необходимых Visual Studio для отображения надстройки в окне Диспетчер надстроек. При запуске Visual Studio выполняется поиск расположения файлов с расширением ADDIN на предмет доступных файлов с расширением ADDIN. В случае нахождения такого файла XML-файл считывается, а в окно Диспетчер надстроек передаются сведения, необходимые для запуска надстройки по щелчку мыши.

Файл с расширением ADDIN создается автоматически вместе с надстройкой мастером надстроек. Используя информацию из данного раздела, можно создать файл .ADDIN вручную.

Расположения файлов

Мастер надстроек автоматически создает две копии файла с расширением ADDIN следующим образом.

Расположение файла с расширением ADDIN

Расположение DLL-файла

Описание

Корневая папка проекта

\Documents\Visual Studio 2013\Projects\MyAddin1\MyAddin1\

Локальный путь (MyAddin1.dll)

Используется для развертывания проекта надстройки. Включается в проект для простоты редактирования и имеет локальный путь для развертывания вида XCopy.

Папка надстройки

\Documents\Visual Studio 2013\Addins\

-или-

Shared Documents Location\Addins\

Папка отладки проекта

(Например, \Documents\Visual Studio 2013

Projects\MyAddin1\MyAddin1\bin\)

Используется для запуска надстройки в среде отладки. Должна всегда указывать на выходной путь текущей конфигурации построения.

Чтобы установить надстройку на другой компьютер, файл .ADDIN необходимо сохранить в расположение, которое Visual Studio проверяет на наличие надстроек. Эти расположения перечислены в диалоговом окне Параметры, узел Окружение, страница Безопасность надстроек. Для получения дополнительной информации см. Безопасность надстроек.

Файл .DLL, который содержит эту надстройку, может быть установлен в любом месте клиентского компьютера. Тем не менее рекомендуем поместить его в ту же папку, где находится файл .ADDIN.

Примечание

Элемент <Assembly> файла .ADDIN должен указывать на DLL-файл, содержащий исполняемые файлы для соответствующей надстройки.

Файл .ADDIN

XML-файл .ADDIN состоит из следующих разделов с тегами.

Раздел

Описание

Ведущее приложение

(Обязательно). Определяет имена и номера версий приложений, которые смогут загрузить надстройку.

Надстройка

(Обязательно). Содержит элементы, описывающие надстройку.

Страница параметров инструментов

(Необязательно). Определяет страницу в диалоговом окне Параметры, где можно настроить параметры надстройки. Категорию и подкатегорию, а также имя сборки и полное имя класса страницы Параметры определяют дочерние узлы.

Дочерние элементы раздела <Addin>.

Элемент

Описание

Данные в окне "О программе"

(Необязательно). Определяет текст, который будет отображаться для надстройки в диалоговом окне Visual Studio О программе.

Данные значка в окне "О программе"

(Необязательно). Определяет двоичные данные, которые будут отображаться для надстройки в диалоговом окне Visual Studio О программе.

Расположение значка для окна "О программе"

(Необязательно). Определяет абсолютный путь или относительный путь значка, который будет отображаться для надстройки в диалоговом окне Visual Studio О программе.

Сборка

(Обязательно). Задает расположение двоичных файлов надстройки. Здесь может быть указан локальный путь, сетевой путь или URL-адрес.

Безопасность командной строки

(Необязательно). Определяет режимы Visual Studio, с которыми совместима надстройка, например только командная строка, только интегрированная среда разработки или оба режима.

Предварительная загрузка команды

(Необязательно). Определяет состояние предварительной загрузки надстройки, т. е. должна ли надстройка создавать свой пользовательский интерфейс с помощью такого метода, какCommands.AddNamedCommand.

Полное имя класса

(Обязательно). Определяет имя класса, который используется для соединения с надстройкой.

Поведение загрузки

(Необязательно). Определяет, должна ли надстройка загружаться автоматически или вручную.

Ниже каждая настройка описана подробно. Дополнительные сведения об иерархических расположениях многих описанных элементов см. ниже в разделе "Пример XML файла .ADDIN".

Ведущее приложение

Элемент <Name> в разделе Host Application содержит имя приложения. Это имя, которое отображается в панели заголовка приложения или возвращается объектом DTE.Name. Например, для Visual Studio тег может содержать текст "Microsoft Visual Studio".

В файле .ADDIN может быть указано несколько ведущих приложений. Каждое значение должно быть заключено в скобки при помощи тегов <Name> в элементе <HostApplication>. В дополнение к элементу <Name> каждый элемент <HostApplication> должен также включать номер версии приложения, заключенный в скобки при помощи тегов <Version>. Например:

   <HostApplication>
      <!-- First Host App name (required). -->
      <Name>Microsoft Visual Studio</Name>
      <Version>12.0</Version>
   </HostApplication>
   <HostApplication>
      <!-- An additional supported program/version. -->
      <Name>Microsoft Visual Studio</Name>
      <Version>11.0</Version>
   </HostApplication>

Кроме того, чтобы включить значение <Version> для каждой версии Visual Studio, можно использовать звездочку (*).

Понятное имя

Элемент <FriendlyName>, расположенный под элементом <Addin>, определяет строку, которая будет отображаться в колонке Доступные надстройки в окне Диспетчер надстроек. Например:

   <FriendlyName>My New Super Addin</FriendlyName>

Описание

Элемент <Description>, расположенный под элементом <Addin>, определяет строку, которая будет отображаться в полеОписание в окне Диспетчер надстроек. Например:

   <Description>This add-in will change your life!</Description>

Данные в окне "О программе"

Этот элемент добавляется в файл .ADDIN, если при создании надстройки вы выбрали параметр генерации настроек для окна О программе. Он определяет текст, который будет отображаться в диалоговом окне Visual Studio О программе. Например:

   <AboutBoxDetails>For add-in support, call 1-800-xxx-
     xxxx.</AboutBoxDetails>

Данные значка в окне "О программе"

Этот элемент добавляется в файл .ADDIN, если при создании надстройки вы выбрали параметр генерации настроек для окна О программе. Он содержит двоичные данные, определяющие значок, который будет отображаться для надстройки в диалоговом окне Visual Studio О программе. Например:

<AboutIconData>0000010006 . . . FFFF0000</AboutIconData>

Сборка

Элемент <Assembly>, расположенный под элементом <Addin>, определяет расположение двоичных файлов надстройки. Он может представлять собой относительный путь, абсолютный путь ("файл"), зарегистрированное имя сборки ("сборка") или URL-адрес ("URL").

  • Ниже приведен пример расположения по абсолютному пути. В данном случае параметр src имеет значение file, указывающее расположения DLL-файла надстройки.

    <Assembly src="file">C:\Documents and Settings\jdoe\Application Data\Microsoft\Visual Studio\12.0\AddIns\MyAddin4.dll</Assembly>
    
  • В следующем примере показано зарегистрированное расположение. В данном случае параметр src имеет значение assembly, обозначающее зарегистрированный DLL-файл надстройки.

    <Assembly src="assembly">BookshelfDefineAddin</Assembly>
    
  • В следующем примере показано расположение по URL-адресу. В данном случае параметр src имеет значение url, указывающее расположения DLL-файла надстройки в сети.

    <Assembly src="url">http://somewebsite.com/MyAddin4.dll</Assembly>
    

Полное имя класса

Элемент <FullClassName> определяет полное имя класса, который используется для подключения к надстройке. Сюда входит пространство имен, содержащее этот класс. Например:

    <FullClassName>MyAddin4.Connect</FullClassName>

Поведение загрузки

Элемент <LoadBehavior> определяет, должна ли надстройка загружаться при запуске интегрированной среды разработки автоматически или запускаться вручную. Элемент <LoadBehavior> расположен под элементом <Addin>. Например:

    <LoadBehavior>1</LoadBehavior>

Использование элемента <LoadBehavior> не является обязательным, но рекомендуется, так как позволяет прямо указать, когда будет загружаться надстройка.

Значение

Описание

0

Надстройка не загружается при запуске интегрированной среды разработки и должна быть запущена вручную.

1

Надстройка загружается при запуске интегрированной среды разработки автоматически.

4

Надстройка загружается при запуске devenv через командную строку с использованием переключателя build (devenv /build).

Предварительная загрузка команды

Элемент <CommandPreload> определяет, должна ли надстройка загружаться заранее. Предварительная загрузка загружает надстройку при первом запуске Visual Studio после установки файла .ADDIN. Например:

    <CommandPreload>1</CommandPreload>

Этот элемент позволяет указывать, должна ли надстройка загружаться после запуска Visual Studio. Предварительная загрузка позволяет надстройке создать необходимые элементы пользовательского интерфейса, например кнопки панели команд, или выполнить первичную инициализацию задач, например создание настроек надстройки по умолчанию. После этого надстройка выгружается до тех пор, пока пользователь не выполнит одну из созданных ею команд. После этого надстройка загрузится в требуемом объеме.

Значение

Описание

0

Надстройка не загрузится, пока пользователь не запустит ее через Диспетчер надстроек или не настроит ее загрузку при запуске.

1

Надстройка загружается автоматически при первом запуске Visual Studio после установки файла .ADDIN.

Вы можете проверить выбранный метод OnConnection и определить, имеет ли тип соединения, определяемый значением OnConnection второго аргумента, значение ext_cm_UISetup. Если да, то с помощью метода AddNamedCommand или AddControl можно выполнять любые команды.

Безопасность командной строки

Необязательный элемент <CommandLineSafe> показывает, разработана ли надстройка таким образом, чтобы избежать отображения пользовательского интерфейса при запуске через командную строку, например, при выполнении через командную строку построений или других аналогичных операций. (Для этого нужно выбрать в Мастере надстроек параметр Личная надстройка никогда не будет создавать модальный пользовательский интерфейс.) Кроме того, он определяет режимы Visual Studio, с которыми совместима надстройка, например только командная строка или только интегрированная среда разработки. Например:

    <CommandLineSafe>0</CommandLineSafe>

Значение

Описание

0

Показывает, что надстройка не обозначена как безопасная для командной строки и может отображать пользовательский интерфейс.

1

Показывает, что надстройка безопасна для командной строки и не отображает пользовательский интерфейс.

Страница параметров инструментов

Необязательный элемент <ToolsOptionsPage> определяет страницу Параметры, позволяющую пользователям настраивать надстройку. Категорию и подкатегорию, а также имя сборки и полное имя класса страницы Параметры определяют дочерние узлы. В следующем примере показана иерархия данного элемента.

  <ToolsOptionsPage>
    <Category Name="Text Editor">
      <SubCategory Name="General">
        <Assembly>"MyFilePath\MyAddInOptionPage.dll"</Assembly>
        <FullClassName>"MyNamespace.MyAddInOptionPage"</FullClassName>
      </SubCategory>
    </Category>
  </ToolsOptionsPage>

Пример XML-файла .ADDIN

В следующем примере показан готовый XML-файл .ADDIN. Он демонстрирует иерархию и расположение элементов, которые были описаны в этом разделе.

<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<Extensibility 
  xmlns="https://schemas.microsoft.com/AutomationExtensibility">
    <HostApplication>
        <Name>Microsoft Visual Studio</Name>
        <Version>12.0</Version>
    </HostApplication> 
    <HostApplication>
        <Name>Microsoft Visual Studio</Name>
        <Version>11.0</Version>
    </HostApplication>
    <Addin>
        <FriendlyName>My great new add-in.</FriendlyName>
        <Description>This add-in does it all.</Description>
        <AboutBoxDetails>Copyright 2013.</AboutBoxDetails>
        <AboutIconData>0000 . . . FFFF0000</AboutIconData>
        <Assembly>MyNewAddin.dll</Assembly>
        <FullClassName>MyNewAddin.Connect</FullClassName>
        <LoadBehavior>1</LoadBehavior>
        <CommandPreload>1</CommandPreload>
        <CommandLineSafe>0</CommandLineSafe>
    </Addin>
</Extensibility>

См. также

Задачи

Практическое руководство. Управление надстройками с помощью диспетчера надстроек

Практическое руководство. Создание надстройки

Пошаговое руководство. Создание мастера

Основные понятия

Диаграмма модели объектов автоматизации

Другие ресурсы

Создание надстроек и мастеров

Команды и переключатели Visual Studio