TFS 2010: как развернуть службу Windows как часть сборки? - PullRequest
4 голосов
/ 12 мая 2010

Нам необходимо иметь возможность развернуть несколько служб Windows на удаленном компьютере как часть сборки. Это ночная сборка, которая развертывает все приложение в среде TEST, поэтому его нужно каким-то образом автоматизировать.

Для веб-проекта можно использовать MSDeploy, а также для серверов БД. Но как насчет служб Windows? Их необходимо остановить (если они уже установлены) на целевом компьютере, затем необходимо скопировать двоичные файлы, зарегистрировать службу (если она еще не установлена) и т. Д. И т. Д.

Ответы [ 3 ]

1 голос
/ 15 февраля 2011

Предполагая, что вы используете VS 2010 и TFS 2010, вы можете изменить рабочий процесс сборки, добавив действие ExecuteProcess (внутри действия AgentScope для целевого сервера), чтобы запустить svcutil.exe, указав имя вашей службы.

1 голос
/ 11 августа 2011

Вы можете использовать MSDeploy для этого. Существует runCommand Provider, который выполняет указанную команду на конечном компьютере.

msdeploy.exe -verb:sync -source:runCommand="net start MyService" -dest:auto

Вы можете прочитать больше здесь: http://technet.microsoft.com/en-us/library/ee619740(WS.10).aspx

1 голос
/ 15 января 2011

Наш способ достижения этой цели - небольшая веб-служба, работающая на наших серверах, которая отслеживает определенный каталог на наличие новых файлов. Наша сборка развертывает службы Windows в эту папку с временным именем, а затем переименовывает их в контролируемый шаблон имени ("servicename.deployservice.zip") служба развертывания возьмет такой файл, разархивирует его во временную папку и выполнит необходимые шаги для развертывания (например, остановка старой службы, удаление старой службы, установка новой службы, запуск новой службы). Если вам нужно перенести специальные действия, вы можете добавить DLL-файл кода развертывания или «сценарий сборки» в ZIP-файл развертывания.

Самый простой способ выполнить такой код развертывания с помощью наиболее универсального кода - это служба, которая просто ожидает (msi или что-либо еще) установки в zip-файле и выполняет ее. Таким образом, вы можете просто добавить настройку развертывания в свой проект, и в Teambuild будет меньше работы ...

...