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

使用MSBuild和Microsoft.Sdc.Tasks安装win32服务,msbuild,windows-services,microsoft.sdc.tasks,Msbuild,Windows Services,Microsoft.sdc.tasks,我正在尝试使用Microsoft.Sdc.Tasks库安装windows服务 <ControlService Action="Install" ServiceName="Service1" User="XXX Password="XXX" ServiceExePath="$(DeployFolder)\XXX.exe"/> 已找到,由于我的服务所做的一切都是从本地文件写入和读取,因此我应该可以在本地服务帐户下运行,而不是在特定用户下运行。即使在更新了

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

<ControlService Action="Install"
    ServiceName="Service1"
    User="XXX
    Password="XXX"
    ServiceExePath="$(DeployFolder)\XXX.exe"/>
已找到,由于我的服务所做的一切都是从本地文件写入和读取,因此我应该可以在本地服务帐户下运行,而不是在特定用户下运行。即使在更新了服务安装程序之后,ControlService目标仍需要用户和密码才能运行,但实际上我不会提示输入用户和密码。但是我不想运行特定的用户,当配置中没有提供用户和密码时,目标会失败。。。奇怪

我通过使用InstallUtil.exe解决了这个问题。在将I set服务安装程序设置为作为本地服务帐户运行后,这一切都可以正常工作

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

仅供参考,要安装到远程服务器,应使用此处列出的SeriecController任务:


这将仅在生成服务器上安装服务。如果要将其安装到远程服务器,应从此处使用servicecontroller任务:servicecontroller任务不允许安装服务。它只控制已安装的服务。