Как добавить пользовательскую сборку SQLCLR в проект базы данных Visual Studio - PullRequest
1 голос
/ 04 ноября 2011

У меня есть проект базы данных и проект базы данных SQLCLR в одном решении. Оба проекта развертывают код в базе данных, однако я бы хотел, чтобы проект базы данных отвечал за развертывание всего кода, включая пользовательскую сборку.

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

Ответы [ 2 ]

2 голосов
/ 04 ноября 2011

Как оказалось, это очень просто.В проекте Database добавьте ссылку на проект SqlClr.Затем проект базы данных автоматически идентифицирует сборку и добавляет ее в свой набор сценариев.

После добавления сборки в базу данных легко сослаться на нее в сценариях создания типов CLR,функции, агрегаты и т. д.

Шаг за шагом, чтобы добавить агрегатную функцию SQLCLR: 1) щелкните правой кнопкой мыши проект базы данных -> Добавить ссылку.Выберите проект SQL CLR из списка проектов в решении

2) Переключитесь на схему базы данных («Просмотр» -> «Просмотр схемы базы данных») Убедитесь, что сборка отображается в модуле «Сборки»

3) Разверните до папки «Функции» («Схема» -> «DBO» -> «Программируемость» -> «Функции»). Щелкните правой кнопкой мыши и выберите «Добавить» -> «Функция» -> «Агрегат».* Теперь проект базы данных является полной единицей развертывания, и проект SQL CLR не требуется как часть развертывания.

0 голосов
/ 04 ноября 2011

Эти два файла проекта являются файлами проекта msbuild.Поэтому вы можете использовать скрипт msbuild для управления ими обоими.

База данных Project импортирует этот файл.$ (MSBuildExtensionsPath) \ Microsoft \ VisualStudio \ v10.0 \ TeamData \ Microsoft.Data.Schema.SqlTasks.targets

На моей 64-битной машине

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData

У него есть цели, такие как DspBuild DspSetupDeployDspDeploy

В то время как проект SqlClr импортирует

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlClr.targets

У него есть цели вроде

SqlClrDeploy

Простого файла msbuild, который вызывает обе цели развертывания, должно быть достаточно.

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

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