使用MSBuild和Microsoft.Sdc.Tasks安装win32服务

时间:2009-01-22 14:49:14

标签: msbuild windows-services microsoft.sdc.tasks

我正在尝试使用Microsoft.Sdc.Tasks库安装Windows服务。

<ControlService Action="Install"
    ServiceName="Service1"
    User="XXX
    Password="XXX"
    ServiceExePath="$(DeployFolder)\XXX.exe"/>

但我不断收到提示输入用户名和密码的信息! 这不起作用,因为我希望将其作为构建服务器上的自动构建。我的意思是,我想在其下运行服务的用户和密码位于实际目标中。如何使用配置的用户和密码安装服务而不提示它?

2 个答案:

答案 0 :(得分:4)

找到this post,因为我的所有服务都是从本地文件写入和读取,所以我应该可以在本地服务帐户而不是特定用户下运行。即使更新了服务安装程序后, ControlService -target也需要运行用户和密码,但是 然后我实际上没有 提示我输入用户和密码。但是后来我不想运行特定用户,并且当配置中未提供用户和密码时目标失败...奇怪。

我通过shelling out解决了InstallUtil.exe问题。在将I set service installer设置为本地服务帐户后,该工作正常。

<Exec WorkingDirectory="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"
            Command="InstallUtil.exe -i XXX.exe" />

答案 1 :(得分:2)

只是一个FYI,要安装到远程服务器,您应该使用此处列出的SericeController任务:

http://weblogs.asp.net/scottgu/archive/2006/02/12/438061.aspx