Пошаговое руководство. Создание управляемых вспомогательных библиотек DLL

В vs_dev12 использовать надстройки не рекомендуется. Рекомендуется обновить надстройки до расширений VSPackage. Дополнительные сведения об обновлении см. в разделе Часто задаваемые вопросы. Преобразование надстроек в расширения VSPackage.

Вспомогательные библиотеки DLL подходят для хранения файлов ресурсов, таких как значки, растровые изображения и строки ресурсов, в централизованном расположении для использования в надстройках и других проектах автоматизации. Вспомогательные библиотеки DLL можно использовать повторно в других проектах или надстройках. Более того, отделение строк и других ресурсов от надстройки упрощает внесение централизованных изменений или локализацию ресурсов на различные языки.

В более ранних версиях Visual Studio для SatelliteDllPath и SatelliteDllName использовались записи реестра. Однако записи реестра теперь заменены записями в файле регистрации с расширением ADDIN. Если для проекта требуется ресурс, следует загрузить надстройку, и Visual Studio будет выполнять поиск ресурса по вспомогательной библиотеке DLL. Следовательно, не требуется жестко задавать путь к ресурсу. Кроме того, вместо использования метода #id для указания идентификатора ресурса необходимо использовать @resource name (где resource name — имя ресурса, например @Icon1 или @String1). Символ @ сообщает Visual Studio, что необходимо выполнять поиск ресурса во вспомогательной библиотеке DLL.

Создание управляемых вспомогательных библиотек DLL

В следующей процедуре показано, как создать вспомогательную библиотеку DLL со значками и строковыми ресурсами и как изменить надстройку для доступа к этим ресурсам. Здесь используется надстройка с диалоговым окном О программе, для которого необходимы значок и строковые ресурсы. Обычно при создании надстройки с диалоговым окном О программе предоставляется значок и текст по умолчанию. В следующей процедуре также показано, как заменить значок и текст по умолчанию на свои собственные.

Создание управляемой вспомогательной библиотеки DLL

  1. В меню Файл последовательно выберите пункты Создать и Проект.

  2. В диалоговом окне Новый проект разверните узел Другие типы проектов, затем выберите Проекты расширения среды.

  3. В области Шаблоны выберите Надстройка Visual Studio.

  4. Следуйте указаниям мастера надстроек Visual Studio. На странице Выберите "Справка, О программе" установите флажок Да, пусть надстройка содержит диалоговое окно "О программе". Примите остальные параметры по умолчанию.

  5. В меню Проект щелкните команду Добавить ссылку.

  6. На вкладке .NET выберите System.Drawing и нажмите ОК.

  7. В окне Обозреватель решений щелкните правой кнопкой мыши проект надстройки, выберите команду Добавить, затем щелкните Новый элемент.

  8. В списке шаблонов выберите Файл ресурсов и нажмите кнопку Добавить. Примите имя по умолчанию (Resources1.resx).

    По умолчанию будет создан файл ресурсов с именем Resource1.resx и запустится Visual Studio Редактор ресурсов.

  9. В Resource1.resx выберите Значки в списке Строки (крайняя левая кнопка сверху).

  10. В списке Добавить ресурс щелкните Добавить новый значок. Пока примите имя по умолчанию (Icon1.bmp) и щелкните Добавить.

    Можно также выбрать существующее растровое изображение для значка размером 16 x 16 пикселей и с глубиной цвета 16 цветов или True Color.

  11. После открытия значка в окне Редактор значков измените его при помощи инструментов. После этого закройте Редактор значков и сохраните изменения.

  12. Выберите команду Добавить новую строку в списке Добавить ресурс.

  13. Щелкните в первом поле столбца Имя.

    Будет создан строковый ресурс по умолчанию с именем String1.

  14. В поле Значение введите Первая строка.

    Это будет значение для первой строки ресурсов.

  15. Создайте еще два строковых ресурса и присвойте им имена "Вторая строка" и "Третья строка".

  16. Закройте Редактор ресурсов и сохраните изменения.

  17. В окне Обозреватель решений щелкните правой кнопкой мыши Resource1.resx и выберите Свойства.

  18. В окне Свойства измените значение свойства Действие при построении со значения Внедренный ресурс на Нет.

    Это предотвратит построение ресурса в сборку надстройки.

  19. Выполните построение проекта.

  20. Создайте вспомогательную DLL-библиотеку ресурсов. Это можно сделать в рамках двухэтапного процесса при помощи ResGen, а затем AL (компоновщик сборок) для построения вспомогательной библиотеки DLL.

    1. Последовательно щелкните Пуск, Все программы, Microsoft Visual Studio 2010, Средства Visual Studio и Командная строка Visual Studio (2010).

      Это позволит задать определенные переменные среды так, чтобы можно было с легкостью создавать ссылки на инструменты Visual Studio.

    2. В командной строке перейдите к папке с файлом с расширением RESX и введите Resgen Resource1.resx.

      Resgen — это служебная программа, компилирующая указанный файл RESX в файл RESOURCES. Для получения дополнительной информации см. Resgen.exe (генератор файлов ресурсов).

    3. В командной строке введите AL.exe /embed:Resource1.resources /culture:en-US /out:Add-In Name.resources.dll.

      Замените Add-In Name именем своей надстройки. Например, если проект надстройки имеет имя MyAddin, коммутатор /out: будет /out:MyAddin.resources.dll. Имя коммутатора /out: должно совпадать с именем проекта, иначе библиотека ресурсов DLL не будет найдена.

      Компоновщик сборок (Al.exe) преобразует указанный файл с расширением RESOURCES в библиотеку DLL, на которую можно будет создать ссылку в надстройке. (В коммутаторе /culture можно указать не только английский язык.) Для получения дополнительной информации см. Al.exe (компоновщик сборок).

  21. В проводнике перейдите к каталогу DLL надстройки и создайте папку с именем \en-US\ (для английского языка (США), так как в качестве языка в средстве Al было указано en-US).

  22. Скопируйте файл Add-In Name.resources.dll в новую папку \en-US\.

  23. В проводнике перейдите в каталог \Addins\ directory, обычно ..\Documents and Settings\user name\My Documents\Visual Studio 2010\Addins\.

  24. Измените файл определения надстроек Visual Studio, выполнив следующие действия.

    1. Щелкните правой кнопкой мыши файл определения надстройки для надстройки, щелкните Открыть с помощью и выберите Блокнот.

    2. Замените следующие теги.

          <FriendlyName>@String1</FriendlyName>
          <Description>@String2</Description>
          <AboutBoxDetails>@String3</AboutBoxDetails>
          <AboutIconData>@Icon1</AboutIconData>
      

      Запись Friendlyname переименует надстройку на Line1 — имя, которое было введено для String1 в файле Resource1.resx. Описание в диалоговом окне О программе теперь будет содержать "Line2", а запись AboutIconData соответствует значку в диалоговом окне О программе.

    3. Вставьте .resources перед расширением имени сборки.

  25. Выполните повторное построение проекта и выберите надстройку в окне Диспетчер надстроек.

  26. В меню Справка щелкните О Microsoft Visual Studio и выберите Line1 (имя надстройки) в списке.

    Отобразятся пользовательский значок и три созданные строки.

См. также

Задачи

Практическое руководство. Доступ к ресурсам во вспомогательных библиотеках DLL.

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

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