WiX: Installation du service en tant que service local
Je suis en train de lancer mon application un programme d'installation via WiX 3.0. Le code exact est:
<File Id="ServiceComponentMain" Name="$(var.myProgramService.TargetFileName)" Source="$(var.myProgramService.TargetPath)" DiskId="1" Vital="yes"/>
<!-- service will need to be installed under Local Service -->
<ServiceInstall
Id="MyProgramServiceInstaller"
Type="ownProcess"
Vital="yes"
Name="MyProgramAddon"
DisplayName="[removed]"
Description="[removed]"
Start="auto"
Account="LocalService"
ErrorControl="ignore"
Interactive="no"/>
<ServiceControl Id="StartDDService" Name="MyProgramServiceInstaller" Start="install" Wait="no" />
<ServiceControl Id="StopDDService" Name="MyProgramServiceInstaller" Stop="both" Wait="yes" Remove="uninstall" />
Chose est, pour une raison quelconque LocalService échoue sur "Installer les services" de l'étape, et si je le change pour "LocalSystem", puis le programme d'installation de fois lors de la tentative de démarrer le service.
Le service démarre fine manuellement et au démarrage du système, et pour toutes fins utiles, fonctionne très bien. J'ai entendu qu'il y a des problèmes à obtenir des services de travail de droit, en vertu de LocalService, mais Google n'est pas vraiment aider tout le monde que les réponses ont été "ai eu à travailler kthx".
Simplement à la recherche pour obtenir ce service mis en place et a commencé lors de l'installation, c'est tout. Toute aide? Merci!
source d'informationauteur Tom Corelis
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé ...
Par cette doc ...
Assurez-vous que les services.msc fenêtre est fermée lorsque vous installez
référence: ServiceControl Table
La MSI documentation pour ServiceControl Table stipule que le " Nom " est le nom de la chaîne du service. Dans votre code snipet, votre ServiceControl 'Nom' est mis à la " ID "pour le ServiceInstall et non de son "Nom". Donc, votre ServiceControl éléments devraient lire:
Voici un autre cas d'un système local de service peuvent ne pas s'installer avec l'erreur 1923: si vous avez un autre service déjà installés avec le même nom d'Affichage (mais différents services internes nom, le chemin, etc). J'ai juste eu cela m'arrive à moi.
Eu le même problème mais avec les comptes spécifiés, s'ennuyait de lui et a créé une autorité de certification pour démarrer le service après l'installation a été achevée à la place. Il suffit de ne pas la peine d'essayer de le démarrer avec MSI, il suffit de laisser un CA, sauf si vous obtenez un peu de la qualité des informations à partir de quelque part.
BTW à l'aide de LocalSystem et de démarrer manuellement le service fonctionne très bien. N'ont jamais eu aucun autres variations au travail.
J'ai eu le même problème. Il s'avère que j'ai eu une faute de frappe dans le
<ServiceControl Id="StartService" Name="MyServiceName"
où monName
ne correspond pas au nom du service que j'ai précisé dans le projet de service quand je l'ai créé.Ce fut aussi le problème avec mon service d'une mauvaise désinstallation.
Je vais juste écho aristippus303 du conseil: N'essayez pas de démarrer un service avec un programme d'installation de Windows, et ne fixent pas de compte, tout simplement accepter la valeur par défaut du système local lors de l'installation. En essayant de faire autre chose est trop problématique. Windows Installer attend pour le service à indiquer qu'il a commencé, et il ya trop de choses qui peuvent aller mal, avec les autorisations et les droits et les paramètres de pare-feu et des fichiers manquants et ainsi de suite, puis Windows Installer extrémités gelées ou termine avec un message d'erreur et que votre installation a échoué.
Ce que vous voulez faire est de spécifier vos documents que l'utilisateur doit modifier manuellement le service du compte (si nécessaire) et démarrer le service manuellement après l'installation se fait, et pour dépanner des problèmes que l'on rencontre à ce point. Ou tout simplement demander à l'utilisateur de redémarrer si l'option de démarrage automatique de démarrer le service, si vous êtes assez sûr qu'il n'y aura pas de problèmes.
J'ai passé un certain temps à la recherche dans ce et découvert que c'était parce que j'avais le chemin d'accès clé attribut défini sur la composante non pas sur le fichier. Mon wix fichier ressemble maintenant à:
Maintenant j'ai juste besoin de travailler sur la façon de donner les autorisations correctes...
S'il vous plaît prêter attention que dans la documentation de ServiceInstall élément, il est écrit à propos de l'attribut de Compte que "Le compte sous lequel pour démarrer le service. Valide seulement lors de l'ServiceType est ownProcess.". Dans votre exemple vous ne spécifiez pas le ownProcess type de service qui peut être le problème.
Nous avons eu le même problème survenant uniquement sur les machines Windows XP ont été le service n'a pas pu être installé. À la fin, nous avons constaté que sur XP le paramètre nom de l'WiX fichier est ignoré et il a plutôt utilisé les service de nom défini dans le code C#. Il nous est arrivé d'avoir un nom dans le code qui contenait espace blanc, j'. e. "Bla bla Service", quand il a été créé avec le même nom que le WiX fichier utilisé sur Windows 7, il a bien travaillé.