windows services - que - Cómo instalar e iniciar un servicio de Windows usando WiX
modificar head wix (3)
El siguiente código funciona para mí ... no es necesario solicitar el nombre de usuario / contraseña :)
<File Id=''JobServiceEXE'' Name=''JobService.exe'' DiskId=''1'' Source=''JobService.exe'' KeyPath=''yes''/>
<ServiceInstall
Id="ServiceInstaller"
Type="ownProcess"
Name="JobService"
DisplayName="123 Co. JobService"
Description="Monitoring and management Jobs"
Start="auto"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
ErrorControl="normal"
/>
<ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" />
</Component>
Traté de usar los códigos a continuación en Wix.
Pero al instalar, el instalador se bloqueó por 3 minutos como estado: Iniciando servicios, luego recibí este mensaje "Service Jobs no se pudo iniciar. Verifique que tenga los privilegios suficientes para iniciar los servicios del sistema". ¿Hay algún error en mis códigos? ¿Y puedo pedirle al usuario que ingrese el nombre de usuario y la contraseña del sistema de Windows durante la instalación para obtener los "privilegios"?
¡Muchas gracias!
<File Id=''JobServiceEXE'' Name=''JobService.exe'' DiskId=''1''
Source=''JobService.exe'' Vital=''yes'' KeyPath=''yes''/>
<ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes"
Name="JobService" DisplayName="123 Co. JobService"
Description="Monitoring and management Jobs" Start="auto"
Account="LocalSystem" ErrorControl="ignore" Interactive="no" />
<ServiceControl Id="StartService" Stop="both" Remove="uninstall"
Name="JobService" Wait="yes" />
</Component>
Encontré que la solución en esta página instalaría el servicio correctamente pero que el elemento ServiceControl no iniciaría el servicio.
Al comparar el servicio instalado wix con el servicio instalado manualmente ("JobService.exe / install"), al campo "Ruta al ejecutable" le faltaba un interruptor de inicio. Se corrigió esto en wix con el atributo arguments de ServiceInstall;
<File Id=''JobServiceEXE'' Name=''JobService.exe'' DiskId=''1'' Source=''JobService.exe'' KeyPath=''yes''/>
<ServiceInstall
Id="ServiceInstaller"
Type="ownProcess"
Name="JobService"
DisplayName="123 Co. JobService"
Description="Monitoring and management Jobs"
Start="auto"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
ErrorControl="normal"
Arguments=" /start JobService"
/>
<ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" />
</Component>
Soy un fanático de mucho tiempo, esta es mi primera publicación aquí. Espero que ayude a alguien.
Una actualización para usuarios de la versión 3.x de WiX. El siguiente código se instalará e iniciará el servicio bajo la cuenta local. Tenga en cuenta la propiedad Arguments en la etiqueta ServiceInstall.
<File Source="$(var.MyService.TargetPath)" />
<ServiceInstall Id="ServiceInstaller" Name="MyService" Type="ownProcess" Vital="yes" DisplayName="My Service" Description="My Service Description" Start="auto" Account="LocalSystem" ErrorControl="normal" Arguments=" /start MyService" Interactive="no" />
<ServiceControl Id="StartService" Name="MyService" Stop="both" Start="install" Remove="uninstall" Wait="yes" />