Устранение неполадок, связанных с расширением функций
Пользователь может создавать собственные расширения функций, например правила анализа кода, условия модульных тестов базы данных, генераторы данных, типы рефакторинга, участники построений и участники развертываний. При установке этих расширений функций могут возникать проблемы, препятствующие их успешной загрузке. В этом разделе обсуждаются наиболее распространенные проблемы и шаги, которые можно предпринять для их решения. Дополнительные сведения об установке и регистрации расширений функций см. в разделе Практическое руководство. Регистрация и управление расширениями функций.
Первые шаги в случае невозможности загрузить расширение функций
Поле установки и регистрации расширения функций нужно перезапустить 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:
неправильное имя типа;
неправильное имя сборки;
неправильный номер версии;
неправильный маркер открытого ключа.
Дополнительные сведения о создании файла extensions.xml см. в разделе Практическое руководство. Регистрация и управление расширениями функций.
Отсутствие подписи у сборки расширения
Если сборка расширения не подписана, ее нельзя загрузить в Visual Studio. Чтобы подписать сборку расширения, выполните следующие шаги.
Подписывание и построение сборки
Откройте решение, содержащее проект расширения.
В меню Проект выберите Проект_моего_расширения: свойства, где Проект_моего_расширения – имя проекта, содержащего расширение функций, которое необходимо подписать.
Выберите вкладку Подпись.
Нажмите кнопку Подписать сборку.
В поле Выберите файл ключей строгого имени щелкните <Создать...>.
В диалоговом окне Создание ключа строгого имени в поле Имя файла ключей введите MyRefKey.
(Необязательно.) Можно задать пароль для файла ключей строгого имени.
Нажмите кнопку ОК.
В меню Файл выберите команду Сохранить все.
В меню Построение выберите Построить решение.
Далее необходимо установить и зарегистрировать сборку, чтобы она загружалась при развертывании проектов базы данных.
Не найден файл 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 от случайного изменения.
Код расширения не расширяет правильные классы
Для каждого типа расширения функций основной класс расширяет определенный базовый класс. В случае не соблюдения наследования от правильного базового класса расширение будет работать неправильно. Дополнительные сведения см. в соответствующих пошаговых руководствах.
Отсутствуют правильные атрибуты у классов или элементов расширения
Для каждого типа расширения функций у класса должен быть атрибут, объявляющий тип поставщика схемы базы данных, с которым совместимо расширение. Кроме того, у некоторых расширений должны быть атрибуты для одного или нескольких методов классов. Дополнительные сведения см. в соответствующих пошаговых руководствах.
См. также
Основные понятия
Создание пользовательских типов или целевых объектов рефакторинга базы данных
Создание и регистрация дополнительных правил анализа кода кода базы данных
Создание специализированных тестовых данных с помощью пользовательского генератора данных
Определение пользовательских условий для модульных тестов базы данных