停止/运行Windows服务并构建解决方案

时间:2010-01-22 12:11:02

标签: .net msbuild windows-services build-process automation

我希望有一个脚本可以停止某个Windows服务,构建或重建解决方案,并在构建过程完成后运行该服务。

我应该使用Msbuild吗?或者还有其他方法吗?

4 个答案:

答案 0 :(得分:7)

MSBuild是你的答案。使用社区任务,特别是服务控制器任务,可以轻松控制服务。

http://msbuildtasks.tigris.org/

答案 1 :(得分:3)

您可以使用batch file停止服务,构建解决方案然后启动服务:

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

从命令行和msbuild start/stop services了解如何command line reference

如上所述,您的其他选择是使用MSBuild community tasks。其中有很多 - ServiceController是您需要的特定服务。

答案 2 :(得分:1)

您正在停止使用解决方案中构建的同一可执行文件的服务吗?如果是这样,为什么不在服务中做动态代码?

答案 3 :(得分:0)

MS build part:

<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>