Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Одновременный деплой BASE_CLR.dll и BASE_CLR.XmlSerializers.dll на SQL сервер / 4 сообщений из 4, страница 1 из 1
28.03.2014, 09:11
    #38598754
Leax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременный деплой BASE_CLR.dll и BASE_CLR.XmlSerializers.dll на SQL сервер
Привет, может не совсем в тему, однако же задача деплоя из VisualStudio в MS SQL...

Возникла следующая проблема:

в VisualStudio (C#) создана сборка с CLR процедурами для MS SQL; в свойствах проекта установлено Build/Generate serialization assembly= ON и Database/Permission level = EXTERNAL (из процедур вызывается WEB-сервис)

Таким образом, в папке Bin\Debug имеем две dll, одна CLR сборки (CallWorkflowServiceCLR.dll), а вторая с данными сериализации для CLR сборки (CallWorkflowServiceCLR.XmlSerializers.dll).

При деплое на сервере SQL оказывается только сборка с CLR процедурами, но отсутствует сборка с данными сериализации.
Для решения проблемы сейчас приходится каждый раз копировать руками *.XmlSerializers.dll в папку на сервере (D:\CLRProcedure), а затем уже руками её регистрировать:
Код: sql
1.
2.
CREATE ASSEMBLY [CallWorkflowServiceCLR.XmlSerializers] FROM 'D:\CLRProcedure\CallWorkflowServiceCLR.XmlSerializers.dll'
WITH PERMISSION_SET = EXTERNAL_ACCESS


Это не совсем удобно, мягко говоря.

Хотел использовать PostDeployScript.sql с командой создания вспомогательной сборки (CallWorkflowServiceCLR.XmlSerializers.dll, см.выше), однако же для этого нужно иметь полный путь к файлу dll, а расшаривать для этого свою папку на локальном компе проблемно, (чтобы сервер оттуда забирал dll) ...

Можно ли как-то без извращений настроить Visual Studio, чтобы она деплоила обе сборки на продуктивный сервер сама?
...
Рейтинг: 0 / 0
28.03.2014, 11:57
    #38598964
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременный деплой BASE_CLR.dll и BASE_CLR.XmlSerializers.dll на SQL сервер
Leax,
Ну а в ручную через студию не пробовали, там же и сделать регистрацию, можно имхо через посредника ( howershell)тем же путем
...
Рейтинг: 0 / 0
28.03.2014, 17:28
    #38599469
Leax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременный деплой BASE_CLR.dll и BASE_CLR.XmlSerializers.dll на SQL сервер
Я так и думал примерно реализовать, спасибо.

Получилось так:
Специально выделил и расшарил на сервере server_name папку D:\CLRProcedure

В студии в свойствах проекта
Post-build event command line:
xcopy /Q /Y "$(TargetDir)*.dll" "\\server_name\CLRProcedure\"

Затем в PostDeployScript.sql
Код: sql
1.
2.
3.
4.
if exists (select * from sys.assemblies where name = 'CallWorkflowServiceCLR.XmlSerializers')
DROP ASSEMBLY [CallWorkflowServiceCLR.XmlSerializers]

CREATE ASSEMBLY [CallWorkflowServiceCLR.XmlSerializers] from 'D:\CLRProcedure\CallWorkflowServiceCLR.XmlSerializers.dll' 
...
Рейтинг: 0 / 0
09.04.2014, 15:29
    #38610061
Leax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одновременный деплой BASE_CLR.dll и BASE_CLR.XmlSerializers.dll на SQL сервер
Сделал лучше - использовал одну и ту же сетевую расшаренную папку на доступном серваке + копирую в неё конкретную XmlSerializers сборку. так можно легко деплоить CLR-процедуры на любой другой сервер.
В PostBuild event проекта:
Код: powershell
1.
xcopy /Q /Y "$(TargetDir)$(TargetName).XmlSerializers.dll" \\shara\CLRProcedure\



в PostDeployScript.sql (удалять старую сборку не нужно, т.к. удалится сама при деплое):
Код: sql
1.
CREATE ASSEMBLY [CallWorkflowServiceCLR.XmlSerializers] from  '\\shara\CLRProcedure\CallWorkflowServiceCLR.XmlSerializers.dll' 
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Одновременный деплой BASE_CLR.dll и BASE_CLR.XmlSerializers.dll на SQL сервер / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]