TFS 2010: как развернуть службу Windows как часть сборки?

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

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


person Alexey Raga    schedule 12.05.2010    source источник
comment
Вы когда-нибудь находили ответ на это? Я пытаюсь сделать то же самое, и мой google-fu подводит меня.   -  person Koby    schedule 05.10.2010


Ответы (3)


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

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

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

person Hakan Forss    schedule 11.08.2011
comment
Чтобы заставить это работать с TFS, требуется гораздо больше. - person The Muffin Man; 23.04.2014

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

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

person eFloh    schedule 15.01.2011

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

person Pete Stensønes    schedule 15.02.2011