Регистрация надстройки
Обновлен: Ноябрь 2007
После создания надстройки ее необходимо зарегистрировать в Visual Studio, прежде чем она станет доступной для активации в диспетчере надстроек. В предыдущих версиях Visual Studio для регистрации использовались разделы реестра, но теперь это выполняется с помощью XML-файла.
Примечание. |
---|
Файл ADDIN создается автоматически вместе с надстройкой мастером надстроек. Описанные действия следует использовать только в том случае, если необходимо создать или редактировать файл регистрации надстройки вручную. |
В Visual Studio .NET 2002 и Visual Studio .NET 2003 для регистрации сборок надстроек в Windows как компонентов COM использовалось средство регистрации сборок (regasm.exe). Кроме того, надстройку нужно было зарегистрировать в Visual Studio с помощью разделов реестра в системном реестре Windows, прежде чем надстройка появлялась в Диспетчере надстроек.
Эти задачи были изменены, начиная с версии Visual Studio 2005. Теперь для регистрации сборок .NET в Windows не нужно использовать средство regasm. Вместо этого необходимо просто поместить файл сборки DLL в определенный каталог (описание см. в этом разделе) вместе с XML-файлом, имеющим расширение ADDIN. Этот XML-файл содержит описание сведений, необходимых Visual Studio для отображения надстройки в диспетчере надстроек. При запуске Visual Studio выполняется поиск местоположения файла ADDIN (см. ниже) на предмет доступных файлов ADDIN. В случае нахождения файла XML-файл считывается и Диспетчеру надстроек передаются сведения, необходимые для запуска надстройки по щелчку мыши.
Такой упрощенный способ регистрации позволяет выполнять установку в стиле XCopy для надстроек с управляемым кодом. Если все файлы будут находиться в нужной папке, то надстройка будет работать правильно. Кроме того, использование XML с комментариями для определения параметров регистрации для надстроек позволит легче понять сведения и редактировать их, чем в случае с разделами реестра.
Файл ADDIN
Прежние параметры реестра для надстройки заменены новым файлом XML с расширением ADDIN. По выполнении мастера надстроек автоматически создаются две копии файла ADDIN:
Местонахождение файла ADDIN |
Местонахождение файла DLL |
Описание |
---|---|---|
Папка Addin (например, \Documents and Settings\All Users\Shared Documents\Visual Studio 2008\Addins) –или– \Documents and Settings\<имя_пользователя>\My Documents\Visual Studio 2008\Addins) |
Папка отладки проекта (например, \My Documents\Visual Studio Projects\MyAddin1\MyAddin1\bin) |
Используется для запуска надстройки в среде отладки. Должна всегда указывать на выходной путь текущей конфигурации построения. |
Корневая папка проекта (например, \My Documents\Visual Studio\Projects\MyAddin1) |
Локальный путь (MyAddin1.dll) |
Используется для развертывания проекта надстройки. Он включается в проект для простоты редактирования и задается с локальным путем для развертывания в стиле XCopy. |
XML-файл ADDIN разбит на следующие разделы с тегами:
Параметр |
Описание |
---|---|
Ведущее приложение |
(Обязательный). Указывает имена и номера версий приложений, которые могут загрузить надстройку. |
Сборка |
(Обязательный). Указывает расположение двоичных данных надстройки. В этом поле можно указать локальный путь, сетевой путь или допустимый URL-адрес. |
Полное имя класса |
(Обязательный). Указывает имя класса, используемого для подключения к надстройке. |
Поведение загрузки |
(Необязательный) Определяет, будет ли надстройка загружаться при запуске или вручную. |
Предварительная загрузка команды |
(Необязательный) Указывает предварительно загруженное состояние надстройки, то есть, должна ли надстройка создавать пользовательский интерфейс при помощи метода, такого как Commands.AddNamedCommand. |
Безопасность командной строки |
(Необязательный) Указывает режимы Visual Studio, с которыми совместима надстройка: только командная строка, только интегрированная среда разработки, или и то, и другое. |
Ниже приводится сведения о каждой из настроек.
Ведущее приложение
Тег <Name> ведущего приложения содержит имя приложения. Это имя отображается в строке заголовка приложения или возвращается DTE.Name. Так, например, для Visual Studio тег будет содержать "Microsoft Visual Studio", а для интегрированной среды разработки макросов в теге будет указано "Microsoft Visual Studio Macros".
В одном файле ADDIN может быть несколько значений ведущего приложения. Каждое значение должно быть заключено в теги <Name> внутри тега <HostApplication>. Помимо тега <Name>, каждый тег <HostApplication> должен также содержать номер версии приложения, заключенного в теги <Version>. Пример.
<HostApplication>
<!-- First Host App name (required). -->
<Name>Microsoft Visual Studio</Name>
<Version>9.0</Version>
</HostApplication>
<HostApplication>
<!-- An additional supported program/version. -->
<Name>Microsoft Visual Studio Macros</Name>
<Version>9.0</Version>
</HostApplication>
Для представления <Version> для любой версии Visual Studio можно также указывать символ звездочки (*). Сведения о расположении этих тегов в иерархии см. в подразделе "Пример XML-файла ADDIN" в конце данного раздела.
Понятное имя
Тег <FriendlyName>, расположенный в теге <Addin>, указывает строку, которая будет отображаться в столбце Имеющиеся надстройки для надстройки в Диспетчере надстроек. Ниже приведен пример использования этого тега.
<FriendlyName>My New Super Addin</FriendlyName>
Сведения о расположении этого тега в иерархии см. в подразделе “Пример XML-файла ADDIN” в конце данного раздела.
Описание
Тег <Description>, расположенный в теге <Addin>, указывает строку, которая будет отображаться в поле Описание для надстройки в Диспетчере надстроек. Ниже приведен пример использования этого тега.
<Description>This add-in will change your life!</Description>
Сведения о расположении этого тега в иерархии см. в подразделе “Пример XML-файла ADDIN” в конце данного раздела.
Сведения в окне “О программе”
Если во время создания надстройки был выбран параметр для создания настроек диалогового окна Справка, О программе, то к файлу ADDIN будет добавлен этот тег. Этот тег задает текст, который будет отображаться для надстройки в диалоговом окне Справка, О программе в Visual Studio. Ниже приведен пример использования этого тега.
<AboutBoxDetails>For add-in support, call 1-800-xxx-
xxxx.</AboutBoxDetails>
Сведения о расположении этого тега в иерархии см. в подразделе “Пример XML-файла ADDIN” в конце данного раздела.
Данные значка окна “О программе”
Если во время создания надстройки был выбран параметр для создания настроек диалогового окна Справка, О программе, то к файлу ADDIN будет добавлен этот тег. Этот тег содержит двоичные данные значка, который будет отображаться для надстройки в диалоговом окне Справка, О программе в Visual Studio. Ниже приведен пример использования этого тега.
<AboutIconData>0000010006 . . . FFFF0000</AboutIconData>
Сведения о расположении этого тега в иерархии см. в подразделе “Пример XML-файла ADDIN” в конце данного раздела.
Сборка
Тег <Assembly>, расположенный под тегом <Addin>, задает расположение двоичных файлов надстройки. В этом теге можно указать локальный путь, сетевой путь ("file"), зарегистрированное имя надстройки ("assembly") или допустимый URL-адрес ("url"). Сведения о расположении этого тега в иерархии см. в подразделе "Пример XML-файла ADDIN" в конце данного раздела.
Ниже приводится пример расположения надстройки по URL-адресу. В этом случае параметр src имеет значение url, указывая расположение DLL надстройки в Интернете:
<Assembly src="url">http://somewebsite.com/MyAddin4.dll</Assembly>
Ниже приводится пример расположения по локальному пути. В этом случае параметр src имеет значение file, указывая расположение DLL надстройки в локальной папке:
<Assembly src="file">C:\Documents and Settings\jdoe\Application Data\Microsoft\Visual Studio\8.0\AddIns\MyAddin4.dll</Assembly>
Ниже приводится пример локального пути. В этом случае параметр src имеет значение assembly, указывая расположение DLL надстройки в Интернете:
<Assembly src="assembly">BookshelfDefineAddin</Assembly>
Полное имя класса
Тег <FullClassName> указывает полное имя класса, используемого для подключения к надстройке, включая пространство имен с классом. Пример использования:
<FullClassName>MyAddin4.Connect</FullClassName>
Сведения о расположении этого тега в иерархии см. в подразделе “Пример XML-файла ADDIN” в конце данного раздела.
Поведение загрузки
Тег <LoadBehavior> определяет, будет ли надстройка загружаться автоматически при запуске интегрированной среды разработки или вручную. Тег <LoadBehavior> располагается под тегом <Addin>. Пример использования:
<LoadBehavior>1</LoadBehavior>
Несмотря на то, что тег <LoadBehavior> не является обязательным, его рекомендуется использовать для явного определения типа загрузки надстройки.
Значение |
Описание |
---|---|
0 |
Надстройка не загружается при запуске интегрированной среды разработки и должна быть запущена вручную. |
1 |
Надстройка загружается автоматически при запуске интегрированной среды разработки. |
4 |
Надстройка загружается, когда devenv запускается из командной строки с переключателем построения (devenv /build). |
Сведения о расположении этого тега в иерархии см. в подразделе “Пример XML-файла ADDIN” в конце данного раздела.
Предварительная загрузка команды
Тег <CommandPreload> указывает, требуется ли предварительная загрузка надстройки. При предварительной загрузке надстройка загружается при первом запуске Visual Studio после записи файла ADDIN на диск. Пример использования:
<CommandPreload>1</CommandPreload>
Этот тег позволяет задать загрузку надстройки после запуска Visual Studio. Такой режим позволяет надстройке создать необходимые элементы пользовательского интерфейса, такие как кнопки панели команд, или выполнить другие задачи инициализации (впервые), например создание параметров надстройки по умолчанию. После этого надстройка сразу же выгружается, пока пользователь не выполнит одну из команд, созданных надстройкой, и тогда надстройка загружается в последующих открываемых экземплярах интегрированной среды разработки.
Значение |
Описание |
---|---|
0 |
Надстройка не будет загружена до тех пор, пока пользователь не запустит ее через диспетчер надстроек или если не будет задана загрузка надстройки в момент запуска. |
1 |
Надстройка загружается автоматически при запуске Visual Studio впервые после записи XML-файла ADDIN на диск. |
Можно проверить реализуемый метод OnConnection, чтобы убедиться, что тип подключения, заданный во втором аргументе OnConnection, является ext_cm_UISetup. Если это так, команды можно размещать как угодно с помощью методов AddNamedCommand или AddControl.
Сведения о расположении этого тега в иерархии см. в подразделе “Пример XML-файла ADDIN” в конце данного раздела.
Безопасность командной строки
Необязательный тег <CommandLineSafe> указывает, должна ли надстройка отключать пользовательский интерфейс при запуске в командной строке devenv, например, при выполнении операций построения из командной строки или подобных операций. (Для этого необходимо выбрать параметр Персональная надстройка никогда не будет создавать модальный пользовательский интерфейс в Мастере надстроек.) Этот тег также указывает режимы Visual Studio, с которыми совместима надстройка: только командная строка или только интегрированная среда разработки. Пример использования:
<CommandLineSafe>0</CommandLineSafe>
Значение |
Описание |
---|---|
0 |
Указывает, что надстройка не является безопасной для командной строки и может отображать пользовательский интерфейс. |
1 |
Указывает, что надстройка является безопасной для командной строки и не отображает пользовательский интерфейс. |
Сведения о расположении этого тега в иерархии см. в подразделе “Пример XML-файла ADDIN” в конце данного раздела.
Пример 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 Macros</Name>
<Version>9.0</Version>
</HostApplication>
<HostApplication>
<Name>Microsoft Visual Studio</Name>
<Version>9.0</Version>
</HostApplication>
<Addin>
<FriendlyName>My great new add-in.</FriendlyName>
<Description>This add-in does it all.</Description>
<AboutBoxDetails>Copyright 2008.</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