web-dev-qa-db-fra.com

Comment installer et démarrer un service Windows en utilisant WiX

J'ai essayé d'utiliser les codes ci-dessous dans Wix.

Mais lors de l’installation, le programme d’installation était gelé pendant environ 3 minutes: Le démarrage des services, puis le message suivant: "Echec du démarrage de Service Jobs Service. Vérifiez que vous disposez des privilèges suffisants pour démarrer les services système" . mes codes? Et puis-je demander à l'utilisateur de saisir le nom d'utilisateur et le mot de passe du système Windows lors de l'installation pour obtenir les "privilèges"? 

Merci beaucoup!

    <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>
55
Ray

Le code suivant fonctionne pour moi ... pas besoin de demander un nom d'utilisateur/mot de passe :)

    <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>
68
saschabeaumont

J'ai trouvé que la solution sur cette page installerait le service correctement mais que l'élément ServiceControl ne démarrerait pas le service.

En comparant le service installé avec le service installé manuellement ("JobService.exe/install"), le champ "Chemin de l'exécutable" manquait d'un commutateur de démarrage. Corrigé ceci dans wix avec l'attribut 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>

C’est mon premier post ici. J'espère que cela aidera quelqu'un. 

14
Daniel de Zwaan

Une mise à jour pour les utilisateurs de la version 3.x de WiX. Le code suivant va installer et démarrer le service sous le compte local. Notez la propriété Arguments dans la balise 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" />
1
RDRick

Pour moi, cela a aidé au moins une fois, j'ai supprimé le service pour installer et désinstaller

<ServiceControl Remove="both" />

Je suppose que cela a enlevé quelque chose de Regedit

0
Mihkel Tiganik