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


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

После написания кода для пользовательского объекта служб Integration Services необходимо создать сборку, развернуть ее, интегрировать его в конструктор служб SSIS, чтобы сделать его доступным для использования в пакетах, а также проверить и выполнить отладку.

Действия по созданию, развертыванию и отладке пользовательского объекта для служб Integration Services

Пользовательская функциональность для объекта уже написана. Теперь необходимо протестировать ее и сделать доступной для пользователей. Действия очень похожи для всех типов пользовательских объектов, которые можно создать для служб Integration Services.

Здесь приведены шаги построения, развертывания и отладки объекта:

  1. Подпишите сборку для формирования со строгим именем.

  2. Постройте сборку.

  3. Разверните сборку, переместив или скопируйв ее в соответствующую папку Служб Integration Services.

  4. Установите сборку в глобальный кэш сборок (GAC).

    Объект автоматически добавляется в область элементов.

  5. Устраните неполадки в работе развернутой сборки, если необходимо.

  6. Протестируйте и выполните отладку кода.

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

Если сборка предназначена для общего доступа, ее необходимо установить в глобальный кэш сборок. После добавления сборки в глобальный кэш сборок сборку можно использовать приложениями, такими как SQL Server Data Tools (SSDT). Глобальный кэш сборок предъявляет к добавляемой сборке особое требование: она должна быть подписана строгим именем, что гарантирует глобальную уникальность сборки. Сборка со строгим именем имеет полное имя, включающее имя, культуру, открытый ключ и номер версии сборки. Среда выполнения использует эти сведения, чтобы найти сборку и отличить ее от других сборок с тем же именем.

Чтобы подписать сборку строгим именем, необходимо иметь или создать пару открытого и закрытого ключей. Такая пара открытого и закрытого криптографических ключей используется во время построения для создания сборки со строгим именем.

Дополнительные сведения о строгих именах и шагах, которые необходимо выполнить для подписи сборки, см. в следующих разделах документации по пакету SDK для платформа .NET Framework:

  • Сборки со строгими именами

  • Создание пары ключей

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

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

Сборка сборки

После подписывания проекта необходимо создать или перестроить проект или решение с помощью команд, доступных в меню "Сборка " SQL Server Data Tools. Решение может содержать отдельный проект для пользовательского интерфейса, который также должен быть подписан строгим именем и может строиться одновременно со сборкой.

Самый удобный метод для выполнения следующих двух шагов развертывания сборки и его установки в глобальном кэше сборок — это скрипт этих шагов в качестве события после сборки в Visual Studio. События сборки доступны на странице компиляции свойств проекта для проекта Visual Basic и на странице "События сборки" для проекта C#. В программах командной строки, например gacutil.exe, необходимо указывать полный путь. Пути, содержащие пробелы, и макросы, например, $(TargetPath), которые разворачиваются в пути, содержащие пробелы, необходимо заключать в кавычки.

Ниже приведен образец командной строки события после построения для пользовательского регистратора.

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\gacutil.exe" -u $(TargetName)
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\gacutil.exe" -i $(TargetFileName)
copy $(TargetFileName) "C:\Program Files\Microsoft SQL Server\120\DTS\LogProviders "

Развертывание сборки

Конструктор служб SSIS находит пользовательские объекты, доступные для использования в пакетах, перечисляя файлы, найденные в ряде папок, созданных при установке служб SQL Server Integration Services. Если используются параметры установки SQL Server по умолчанию, этот набор папок находится в разделе C:\Program Files\Microsoft SQL Server\120\DTS. Однако при создании программы установки для пользовательского объекта необходимо проверить значение раздела реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server\120\SSIS\Setup\DtsPath , чтобы проверить расположение этой папки.

Можно поместить сборку в папку двумя способами.

  • Переместить или скопировать скомпилированную сборку в соответствующую папку после ее построения. (Для удобства можно включить команду копирования в событие после построения.)

  • Построить сборку непосредственно в нужной папке.

Следующие папки развертывания в папке C:\Program Files\Microsoft SQL Server\120\DTS используются для различных типов пользовательских объектов:

Пользовательский объект Папка развертывания
Задача Задачи
Диспетчер соединений Связи
Регистратор LogProviders
Компонент потока данных PipelineComponents

Примечание.

Сборки копируются в эти папки для поддержки перечисления доступных задач, диспетчеров соединений и т. д. Поэтому нет необходимости развертывать сборки, содержащие только пользовательский интерфейс для пользовательских объектов, в этих папках.

Установка сборки в глобальном кэше сборок

Чтобы установить сборку задачи в глобальный кэш сборок (GAC), используйте программу командной строки gacutil.exe или перетащите сборки в каталог %system%\assembly. Для удобства можно включить вызов программы gacutil.exe в событие после построения.

Следующая команда устанавливает компонент с именем MyTask.dll в глобальный кэш сборок (GAC) с помощью программы gacutil.exe.

gacutil /iF MyTask.dll

После установки новой версии пользовательского объекта необходимо закрыть и повторно открыть конструктор служб SSIS. Если устаревшие версии пользовательского объекта были ранее установлены в глобальный кэш сборок, необходимо удалить их перед установкой новой версии. Чтобы удалить сборку, запустите программу gacutil.exe и укажите имя сборки с параметром /u.

Дополнительные сведения о глобальном кэше сборок см. в разделе "Глобальный кэш сборок" (Gactutil.exe) в платформа .NET Framework Tools.

Устранение неполадок развертывания

Если пользовательский объект отображается на панели элементов или в списке доступных объектов, но его не удается добавить в пакет, попробуйте выполнить следующие действия:

  1. Выполните поиск в глобальном кэше сборок на предмет наличия в нем нескольких версий компонента. При наличии нескольких версий компонента в глобальном кэше сборок конструктор не может загрузить компонент. Удалите все экземпляры сборки из глобального кэша сборок и добавьте сборку заново.

  2. Убедитесь в том, что только один экземпляр сборки существует в папке развертывания.

  3. Обновите панель элементов.

  4. Подключите Visual Studio к devenv.exe и задайте точку останова для пошагового выполнения кода инициализации, чтобы убедиться, что исключения не происходят.

Тестирование и отладка кода

Самый простой подход к отладке методов времени выполнения пользовательского объекта — начать dtexec.exe из Visual Studio после создания пользовательского объекта и запустить пакет, использующий компонент.

Если вы хотите отлаживать методы времени разработки компонента, например Validate метод, откройте пакет, использующий компонент во втором экземпляре Visual Studio, и подключитесь к нему devenv.exe процесса.

Если вы также хотите отладить методы времени выполнения компонента при открытии пакета и запуске в конструкторе служб SSIS, необходимо принудительно приостановить выполнение пакета, чтобы также можно было подключиться к процессу DtsDebugHost.exe .

Отладка методов времени выполнения объекта путем подключения к dtexec.exe

  1. Подпишите и постройте проект в конфигурации отладки, выполните развертывание и установку в глобальный кэш сборок, как описано в этом разделе.

  2. На вкладке "Отладка" свойств проекта выберите "Запустить внешнюю программу" в качестве действия запуска и найдите dtexec.exe, которая устанавливается по умолчанию в C:\Program Files\Microsoft SQL Server\120\DTS\Binn.

  3. В текстовом поле Параметры командной строки в разделе Параметры запуска введите аргументы командной строки, необходимые для выполнения пакета, который использует пользовательский компонент. Часто аргумент командной строки содержит параметр /F[ILE], за которым следуют путь и имя DTSX-файла. Дополнительные сведения см. в статье dtexec Utility.

  4. В исходном коде, где это необходимо, задайте точки останова в методах времени выполнения компонента.

  5. Выполните проект.

Отладка методов времени разработки пользовательского объекта путем присоединения к SQL Server Data Tools

  1. Подпишите и постройте проект в конфигурации отладки, выполните развертывание и установку в глобальный кэш сборок, как описано в этом разделе.

  2. В исходном коде, где это необходимо, задайте точки останова в методах времени разработки пользовательского объекта.

  3. Откройте второй экземпляр Visual Studio и загрузите проект Служб Integration Services, содержащий пакет, использующий пользовательский объект.

  4. В первом экземпляре Visual Studio подключитесь ко второму экземпляру devenv.exe , в котором загружается пакет, выбрав "Присоединить к процессу " в меню отладки первого экземпляра.

  5. Запустите пакет из второго экземпляра Visual Studio.

Отладка методов времени выполнения пользовательского объекта путем присоединения к SQL Server Data Tools

  1. После выполнения шагов, описанных в предыдущей процедуре, принудительно приостановите выполнение пакета, чтобы его можно было присоединить к DtsDebugHost.exe. Принудительно приостановить выполнение можно путем добавления точки останова в событие OnPreExecute либо добавления задачи «Скрипт» в проект и ввода скрипта, отображающего модальное окно сообщения.

  2. Запустите пакет. При приостановке переключитесь на экземпляр Visual Studio, в котором открыт проект кода, и выберите "Присоединить к процессу" в меню отладки. Подсоединяться следует к экземпляру DtsDebugHost.exe, содержащемуся в списке Управляемые, x86 в столбце Тип, а не к экземпляру из списка x86.

  3. Вернитесь к приостановленному пакету и продолжите выполнение после точки останова либо нажмите кнопку ОК, чтобы закрыть окно сообщения, выданного задачей "Скрипт", и продолжить выполнение и отладку пакета.

Значок служб Integration Services (небольшой) Оставайтесь в курсе в службах Integration Services
Последние загрузки, статьи, примеры и видео из Корпорации Майкрософт, а также выбранные решения из сообщества, посетите страницу служб Integration Services на сайте MSDN:

Посетить страницу «Службы Integration Services» на сайте MSDN

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.

См. также

Разработка пользовательских объектов для служб Integration Services, сохраняющих пользовательские объекты, средства устранения неполадок для разработки пакетов