2010-11-19 5 views
1

Est-il possible/recommandé d'utiliser l'élément InstallService pour installer un service Windows écrit en code managé (C#)? (J'ai essayé et il installe le service, mais le service ne démarre pas)Comment installer un service géré à partir de WiX?

Ou cela nécessite-t-il une action personnalisée qui appelle Installutil?

Ou existe-t-il un autre moyen de le faire?

Répondre

3

Je suis dans une étude de wix moi-même en ce moment et a juste réussi à installer/désinstaller un service géré avec juste un moyen standard ServiceInstall/ServiceControl (et pourquoi pas si nous pouvons simplement utiliser sc pour cela). D'après ce que j'ai lu et d'accord avec, en utilisant une tâche personnalisée avec installutil est considered a bad practice: J'avais l'habitude d'installer des compteurs perf dans mon installateur .net, mais maintenant je vais juste le wix way for it. Par ailleurs, j'ai dû ajouter un élément ServiceControl afin que le service ait été démarré après l'installation (attribut Démarrer) et plus important encore pour moi, complètement désinstallé pendant la désinstallation (Supprimer l'attribut).

<ServiceControl Id='ControlStansWinService' Remove='both' Name='StansWinService' Start='install' Stop='both' Wait='yes' /> 

J'ai publié mes résultats jusqu'à présent here, espère que vous pouvez le trouver utile.

+0

vous avez raison, il est possible d'utiliser la balise pour les services gérés, pas besoin d'appeler InstallUtil. mon service spécifique avait un tas de personnalisations dans la classe d'installateur que j'ai dû déplacer au MSI, mais cela s'est avéré être posible. par exemple. ajouter une source de journal d'événements. – Max

+0

Merci beaucoup. Vous avez sauvé ma journée :) –

0

Vous devez utiliser l'élément WIX InstallService car il effectue tout le travail d'installation du service et de démarrage et d'arrêt/suppression du service lors de l'installation et de la désinstallation. Si vous utilisez une action personnalisée pour appeler InstallUtil pour installer le service, vous devez recommencer manuellement le démarrage et l'arrêt du service à l'aide de CustomAction.

+0

vous avez raison, voir mon commentaire ci-dessous. Merci! – Max

Questions connexes