Question

Ma question est essentiellement la même que la suivante, mais la réponse ne m'a pas aidé.

service .NET Windows - plusieurs services dans un seul projet

Pour l'essentiel, j'ai 3 services, permet de dire "Service1", "Service" et "Service3".

ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
                                {
                                    new Service1("Service1"),
                                    new Service2("Service2"),
                                    new Service3("Service3")
                                };

ServiceBase.Run(ServicesToRun);

J'ai aussi des cours d'installation CORRESPONDANTS serviceInstaller.ServiceName = "ServiceX" pour chacun de ces services.

Quand j'utilise installutil, je ne vois tous les 3 services du gestionnaire de services. Cependant, quand je les commence (tout ou partie d'entre eux) que le premier ( « Service1 ») est en cours d'exécution.

Je sais que cela est trivial et je peux probablement différents projets d'installation pour chacun d'entre eux, mais dans mon cas, il est sémantiquement plus logique d'utiliser un seul

Votre aide est appréciée

Merci Venu

Était-ce utile?

La solution

I créé un projet de service 3 (ci-dessous) qui utilise un programme d'installation du programme pour chaque service. J'ai ensuite ajouté un projet d'installation qui installe les services dans le gestionnaire de services. Voici mon flux de travail était:

  1. Créer 3 services dans une solution dans Visual Studio 2008. Nommer chaque service Service1, Service2 et, Service3. (Etre sûr de changer les noms de services réels à leurs noms respectifs dans la fenêtre des propriétés.)
  2. Ajout d'un projet d'installation à cette solution.
  3. Ajout des résultats du projet des trois projets de service au projet d'installation.
  4. Ajout des actions personnalisées pour les trois services dans le programme d'installation pour l'installation des services dans le gestionnaire de services.
  5. Construit et installé.

Cela me donne trois services distincts dans le gestionnaire de services: Service1, Service2 et Service3

Amusez-vous!

http://code.google.com/p/multi-service-install /

EDIT:

J'ai mis à jour le code dans le référentiel d'avoir un exécutable mais deux services. Chaque service installe le gestionnaire de services avec son propre nom et sa capacité à démarrer / arrêter. Je pense que c'est ce que vous êtes vouloir, non? Voici ce que je faisais:

  1. Création d'un projet de service.
  2. Ajout d'un second service au même projet (avec un nom de service).
  3. Ajout d'une installation à la fois des services (ServiceA et Serviceb).
  4. Dans le fichier ProjectInstaller.Designer.vb j'ai changé la ligne de Me.Installers.AddRange pour montrer à la fois des installateurs de service. (Me.ServiceInstaller1, Me.ServiceInstaller2)
  5. Dans le point d'entrée principal du service principal (ServiceA dans mon cas), je mets la variable ServicesToRun à un tableau de ServiceBase contenant tous les services que je veux à courir (ServiceA et Serviceb). Ceci est une étape importante en tant que gestionnaire de services définit une propriété en fonction du nombre d'arguments ici - que ce soit pour permettre plusieurs instances du même exe ou une seule instance.
  6. Ajoutez un projet d'installation et d'utiliser la sortie des services.
  7. Ajouter une action personnalisée en utilisant la sortie de services.

Le code peut encore être téléchargé à partir du même lien que ci-dessus.

Merci!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top