72 votes

Y a-t-il un moyen de remplacer le nom du service Windows de .NET sans recompiler ?

J'ai un exécutable de service Windows que je sais être écrit en .NET et que je dois installer sous un nom de service différent pour éviter un conflit. L'installation ne permet pas de spécifier un nom de service. Si je n'ai accès qu'au binaire, existe-t-il un moyen de remplacer le nom du service lorsque je l'installe avec installutil ?

104voto

Josh Yeager Points 2150

Devez-vous utiliser InstallUtil ? Voici les commandes pour faire ce que vous voulez en utilisant sc :

sc create MyService binPath= "MyService.exe" DisplayName= "MyService"  
sc description MyService "My description"

Référence : http://support.microsoft.com/kb/251192

29voto

Sachin Kainth Points 7842

Il n'est pas vrai que InstallUtil ne vous permet pas de configurer le nom du service. Je le fais tout le temps comme ceci

InstallUtil.exe /servicename="<service name>" "<path to service exe>"

24voto

  1. Ajouter un installateur de projet à votre service

  2. Ajouter une méthode pour obtenir le nom du CustomService

    private void RetrieveServiceName() 
    {
        var serviceName = Context.Parameters["servicename"];
        if (!string.IsNullOrEmpty(serviceName))
        {
            this.SomeService.ServiceName = serviceName;
            this.SomeService.DisplayName = serviceName;
        }
    }
  3. appel sur l'installation et la désinstallation

    public override void Install(System.Collections.IDictionary stateSaver)
    {
       RetrieveServiceName();
      base.Install(stateSaver);
    }
    
    public override void Uninstall(System.Collections.IDictionary savedState)
    
    {
       RetrieveServiceName();
       base.Uninstall(savedState);
    }
  4. installutil /servicename=”My Service [SysTest]” d:\pathToMyService\Service.exe

Source :

4voto

user430017 Points 126

enter image description here

C'est exactement ce qui a marché pour moi !

J'espère que quelqu'un pourra l'utiliser.

2voto

jsw Points 895

Essayez d'installer votre service avec sc.exe. Une recherche rapide vous donnera beaucoup de documentation. Avec cet outil, il est facile de modifier les services existants et/ou d'en ajouter de nouveaux -- y compris les noms.

Edit : J'installe mes services .NET avec cet outil.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X