Практическое руководство. Регистрация и управление расширениями функций
Можно добавлять пользовательские типы и целевые объекты рефакторинга, правила анализа кода базы данных, условия модульных тестов баз данных и генераторы данных для расширения функциональности Visual Studio Premium или Visual Studio Ultimate. Однако перед тем как использовать расширение функции, его необходимо сначала зарегистрировать вне зависимости от того, было ли оно создано вами или другим разработчиком. Дополнительные сведения см. в разделе Расширение функций баз данных в Visual Studio.
Рекомендуется создать папку для расширений функций в папке Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions. Такой подход позволяет предоставить разрешения на запись для вложенной папки, но не для каталога Extensions. При этом пользователи смогут добавлять свои расширения, но не смогут изменять файлы, являющиеся частью Visual Studio.
Предупреждение
Чтобы создавать вложенные папки в папке Program Files\Microsoft Visual Studio 10.0\VSTSDB\, необходимо иметь права администратора.Если пользователь не имеет соответствующих прав, он должен обратиться к администратору сети.
Вопросы безопасности
Прежде чем устанавливать расширение, которое создано не вами, следует осознать следующие риски:
Программа установки расширения может быть вредоносной. Она может получить доступ к защищенным ресурсам, используя ваши права на установку.
Само расширение может быть вредоносным. Оно может использоваться для получения контроля над защищенными ресурсами, если пользователь, выполняющий пользовательское условие теста, имеет достаточные разрешения.
Для минимизации риска необходимо устанавливать расширения, полученные только из известного источника. Если расширение получено из ненадежного источника, перед его установкой и использованием следует проанализировать исходный код этого расширения и его установщика (если таковой имеется).
Установка пользовательского расширения функции
Скопируйте подписанную сборку (DLL) в папку Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions\CustomExtensions.
CustomExtensions — имя папки, созданной вами или администратором вашего компьютера для хранения сборок и XML-файлов расширений функций.
Примечание
Не рекомендуется копировать сборки и XML-файлы непосредственно в папку Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions.Если использовать вложенную папку, другие файлы, имеющиеся в Visual Studio, будут защищены от случайного изменения.
Затем расширение необходимо зарегистрировать, чтобы оно появилось в Visual Studio.
Регистрация нового расширения функции
В меню Вид выберите пункты Другие окна и Окно команд.
В командном окне введите следующий код, подставив путь и имя файла сборки вместо FilePath. Заключите в кавычки имя файла и путь к нему.
Примечание
При создании расширения по умолчанию используется следующий путь к скомпилированному DLL-файлу: путь_к_решению\bin\Debug или путь_к_решению\bin\Release.
? System.Reflection.Assembly.LoadFrom("FilePath").FullName
? System.Reflection.Assembly.LoadFrom(@"FilePath").FullName
Нажмите клавишу ВВОД.
Скопируйте результирующую строку в буфер обмена. Эта строка должна выглядеть примерно так:
"GeneratorAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nnnnnnnnnnnnnnnn"
Откройте редактор обычного текста, такой как "Блокнот".
Предоставьте следующую информацию, указав собственное имя сборки, маркер открытого ключа и тип расширения:
<?xml version="1.0" encoding="utf-8" ?> <extensions assembly="" version="1" xmlns="urn:Microsoft.Data.Schema.Extensions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:Microsoft.Data.Schema.Extensions Microsoft.Data.Schema.Extensions.xsd"> <extension type="<enter extension type here>" assembly="<enter assembly name here>, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b4deb9b383d021b0" enabled="true"/> </extensions>
Тип расширения обычно имеет форму "пространствоИмен.имяКласса". Имя сборки не включает расширение имени DLL-файла.
Совет
Если сборка содержит несколько классов, файл может содержать список типов расширения.
Сохраните файл с расширением Extensions.xml.
Например, файл можно назвать так: "имя_условия_теста.Extensions.xml".
Добавьте этот файл в папку Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions\CustomExtensions.
CustomExtensions — имя папки, созданной вами или администратором вашего компьютера для хранения сборок и XML-файлов расширений функций.
Примечание
Не рекомендуется копировать сборки и XML-файлы непосредственно в папку Program Files\Microsoft Visual Studio 10.0\VSTSDB\Extensions.Если использовать вложенную папку, другие файлы, имеющиеся в Visual Studio, будут защищены от случайного изменения.
Закройте и снова откройте Visual Studio.
Теперь расширение доступно.
Пример
В следующем примере показан XML-файл, необходимый для регистрации пользовательского правила анализа кода базы данных, созданного в разделе Пошаговое руководство. Разработка сборки настраиваемого правила статического анализа кода SQL. Необходимо подставить собственный открытый ключ и имя сборки. Именем сборки в следующем примере является "SampleRules".
<?xml version="1.0" encoding="utf-8"?>
<extensions assembly=""
version="1" xmlns="urn:Microsoft.Data.Schema.Extensions"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:Microsoft.Data.Schema.Extensions Microsoft.Data.Schema.Extensions.xsd">
<extension type="SampleRules.AvoidWaitForDelayRule" assembly="SampleRules, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b4deb9b383d021b0" enabled="true"/>
</extensions>
См. также
Основные понятия
Определение пользовательских условий для модульных тестов базы данных
Создание специализированных тестовых данных с помощью пользовательского генератора данных
Создание пользовательских типов или целевых объектов рефакторинга базы данных
Создание и регистрация дополнительных правил анализа кода кода базы данных