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


Устранение неполадок, связанных с расширением функций

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

Первые шаги в случае невозможности загрузить расширение функций

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

Failed to load extension MyBuildContributor.ModelStatisticsReport. Exception message: Could not load type 'MyBuildContributor.ModelStatisticsReport' from assembly 'MyBuildContributor, Version 1.0.0.0, Culture=neutral, PublicKeyToken=34fdfd7e8ae7c7a8'.

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

Диагностика причин невозможности загрузки расширения

Существуют следующие причины невозможности загрузки расширения:

  • допущена одна или несколько ошибок в файле расширения;

  • отсутствует подпись у сборки расширения;

  • не найден файл extensions.xml;

  • не найдена сборка расширения;

  • код расширения не расширяет правильные классы;

  • отсутствуют правильные атрибуты у классов или элементов расширения.

Допущена одна или несколько ошибок в файле расширения

Наиболее распространенная причина невозможности загрузки расширения – наличие одной или нескольких ошибок в файле Extensions.XML:

Отсутствие подписи у сборки расширения

Если сборка расширения не подписана, ее нельзя загрузить в Visual Studio. Чтобы подписать сборку расширения, выполните следующие шаги.

Подписывание и построение сборки

  1. Откройте решение, содержащее проект расширения.

  2. В меню Проект выберите Проект_моего_расширения: свойства, где Проект_моего_расширения – имя проекта, содержащего расширение функций, которое необходимо подписать.

  3. Выберите вкладку Подпись.

  4. Нажмите кнопку Подписать сборку.

  5. В поле Выберите файл ключей строгого имени щелкните <Создать...>.

  6. В диалоговом окне Создание ключа строгого имени в поле Имя файла ключей введите MyRefKey.

  7. (Необязательно.) Можно задать пароль для файла ключей строгого имени.

  8. Нажмите кнопку ОК.

  9. В меню Файл выберите команду Сохранить все.

  10. В меню Построение выберите Построить решение.

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

Не найден файл Extensions.XML

Если не предоставить XML-файл для регистрации расширения с помощью Visual Studio, решение не будет загружено. Обычно нужно скопировать файл Моя_сборка.Extensions.XML в папку %Program Files%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions, где Моя_сборка – имя расширения.

Примечание

Не рекомендуется копировать XML-файлы непосредственно в папку [Program Files]\Microsoft Visual Studio 10.0\VSTSDB\Extensions.Использование вложенной папки позволит защитить другие файлы в Visual Studio от случайного изменения.

Дополнительные сведения о создании файла Extensions.XML см. в разделе Практическое руководство. Регистрация и управление расширениями функций.

Не найдена сборка расширения

Если сборка расширения не скопирована в папку Extensions, решение не будет загружено. Обычно нужно скопировать файл Моя_сборка.dll и файл Моя_сборка.pdb в папку %Program Files%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MyExtensions, где Моя_сборка – имя расширения.

Примечание

Не рекомендуется копировать XML-файлы непосредственно в папку [Program Files]\Microsoft Visual Studio 10.0\VSTSDB\Extensions.Использование вложенной папки позволит защитить другие файлы в Visual Studio Premium от случайного изменения.

Код расширения не расширяет правильные классы

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

Отсутствуют правильные атрибуты у классов или элементов расширения

Для каждого типа расширения функций у класса должен быть атрибут, объявляющий тип поставщика схемы базы данных, с которым совместимо расширение. Кроме того, у некоторых расширений должны быть атрибуты для одного или нескольких методов классов. Дополнительные сведения см. в соответствующих пошаговых руководствах.

См. также

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

Создание пользовательских типов или целевых объектов рефакторинга базы данных

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

Создание специализированных тестовых данных с помощью пользовательского генератора данных

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

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

Настройка построения и развертывания базы данных с помощью корреспондентов построения и развертывания