msbuild windows-services microsoft.sdc.tasks

Instalar un servicio win32 utilizando MSBuild y Microsoft.Sdc.Tasks



windows-services (2)

Estoy intentando instalar el servicio de Windows usando la biblioteca Microsoft.Sdc.Tasks.

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

¡Pero me sigue pidiendo el usuario y la contraseña! Esto no funcionará ya que me gustaría tenerlo como una compilación automatizada en el servidor de compilación. Quiero decir, el usuario y la contraseña con los que quiero ejecutar el servicio están en el objetivo real. ¿Cómo obtengo que instale el servicio utilizando el usuario y la contraseña configurados y no lo solicito?


Encontré esta publicación y, como todo lo que hace mi servicio es escribir y leer desde el archivo local, me parece bien que corra bajo la cuenta de Servicio local en lugar de un usuario específico. Incluso después de actualizar el instalador del servicio, ControlService -target requiere un usuario y una contraseña para ejecutar, pero en realidad no me pide el usuario y la contraseña. Pero entonces no quiero ejecutar un usuario específico y el objetivo falla cuando no se proporciona un usuario y contraseña en la configuración ... Extraño.

Lo solucioné desembarcando en InstallUtil.exe. Eso funciona bien después de configurar el instalador de servicios de I set para que se ejecute como una cuenta de servicio local.

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