使用CC.NET和MSBUILD安装Windows服务的问题

时间:2010-03-08 12:44:07

标签: msbuild windows-services cruisecontrol.net

我正在尝试使用MSBuild和CCNET安装Windows服务。我正在使用MSBuild扩展包WindowsService 作为自动构建的一部分安装和启动Windows服务的任务。脚本部分看起来像这样

<!--install service-->
<MSBuild.ExtensionPack.Computer.WindowsService TaskAction="Install" ServiceName="$(PrServiceName)" ServicePath="$(PrServicePath)" User="$(User)" />

<!--set service to run automatically on restart-->
<MSBuild.ExtensionPack.Computer.WindowsService TaskAction="SetAutomatic" ServiceName="$(PrServiceName)" />

<!--start service-->
<MSBuild.ExtensionPack.Computer.WindowsService TaskAction="Start" ServiceName="$(PrServiceName)" ServicePath="$(PrServicePath)" User="$(User)" />

现在,只要第一个任务运行以安装服务,它就会失败,并显示以下错误

E:\ Data \ cc_temp \ Projects \ cubic \ intranet \ pr \ pr.build(137,3):错误:安装服务失败,代码为:'AccessDenied'

我认为这是因为脚本在巡航控制服务用户帐户下运行,该帐户没有安装Windows服务的适当权限。

我只想给予巡航控制用户帐户最小的权限,而不是给予完整的管理权限。

有没有人知道我怎么能实现这个目标?

等待 纳比尔

1 个答案:

答案 0 :(得分:0)

Nabeel你走在正确的轨道上,它必须是一个权限问题。我们使用相同的工具在构建中始终执行此操作并且它可以正常工作。您是否检查过该服务运行的帐户?并使用相同的用户帐户来运行您的巡航控制?至少那你可能会证明/反驳权限问题。