2010-01-22 6 views
1

Я хотел бы иметь сценарий, который останавливает определенную службу Windows, создает или восстанавливает решение и запускает службу после завершения процесса сборки.Остановить/запустить Windows-сервис и построить решение

Должен ли я использовать Msbuild для этого? Или есть другой способ?

ответ

3

Вы можете использовать batch file, который будет остановить службу, построить решение затем запустить службу:

net stop "service name" 
<path to msbuild>\msbuild.exe <path to solution file> 
net start "service name" 

Посмотреть, как start/stop services из командной строки, и MSBuild command line reference.

Ваш другой вариант, как упомянуто, использовать MSBuild community tasks. Их много - ServiceController - это тот, который вам нужен.

7

MSBuild - ваш ответ. Управление сервисами можно легко выполнить с помощью задач сообщества, в частности задачи диспетчера служб.

http://msbuildtasks.tigris.org/

1

ли сервис вы останавливая тот же исполняемый файл, вы строите в растворе? Если да, почему бы не сделать динамический код в сервисе?

+0

Что вы имеете в виду с динамическим кодом? – user137348

+0

Похоже, у вас есть код, который меняется, и вы хотите автоматизировать эти изменения. Ну, вы можете генерировать новый код во время выполнения, используя пространство имен System.Reflection & System.CodeDom.Compiler. –

0

MS построить часть:

<PropertyGroup> 
    <ServiceName>Service</ServiceName> 
</PropertyGroup> 
<Target Name="PostBuild"> 
    <Exec Command="net stop $(ServiceName)" ContinueOnError="true" Condition="$(ServiceName)!=''" /> 
    [. rest of the logic here .] 
    <Exec Command="net start $(ServiceName)" ContinueOnError="true" Condition="$(ServiceName)!=''" /> 
</Target> 
Смежные вопросы