使用CC.NET和MSBUILD安装windows服务时出现问题

使用CC.NET和MSBUILD安装windows服务时出现问题,msbuild,windows-services,cruisecontrol.net,Msbuild,Windows Services,Cruisecontrol.net,我正在尝试使用MSBuild和CCNET安装windows服务。我正在使用MSBuild扩展包 作为自动生成的一部分安装和启动windows服务的任务。脚本部分如下所示 <!--install service--> <MSBuild.ExtensionPack.Computer.WindowsService TaskAction="Install" ServiceName="$(PrServiceName)" ServicePath="$(PrServicePath)" Use

我正在尝试使用MSBuild和CCNET安装windows服务。我正在使用MSBuild扩展包 作为自动生成的一部分安装和启动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\u temp\Projects\cubic\intranet\pr\pr.build(137,3):错误:安装服务失败,代码为:“AccessDenied”

我假设这是因为脚本是在巡航控制服务用户帐户下运行的,该帐户没有安装windows服务的相应权限

我只想给巡航控制系统的用户帐户最低限度的权限,而不是给完全的管理权限

有人知道我该如何做到这一点吗

等待
Nabeel

Nabeel如果你走对了方向,那一定是权限问题。在构建过程中,我们一直使用相同的工具来实现这一点,而且效果很好。您是否已检查服务运行的帐户?使用相同的用户帐户运行cruisecontrol?至少你可能会证明/反驳权限问题。

嗨,Alex,我一直在任务中使用unc path作为ServicePath属性。将其更改为绝对路径后,一切似乎都正常工作。