web-dev-qa-db-fra.com

Comment changer le nom de mon service Windows?

J'ai un service Windows et je souhaite en changer le nom (tel qu'il apparaît dans l'application Services). Mais je ne suis pas sûr de la bonne façon de le faire. Il semble que ce soit la propriété ServiceName et en cherchant dans ma solution, j'ai trouvé ceci:

namespace SI.AService.AService
{
    partial class AService
    {
        /// <summary> 
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            // 
            // AService
            // 
            this.ServiceName = "Company.AService.AService";

        }

        #endregion
    }
}

Donc, cela semble être du code généré automatiquement. Quelle est la bonne façon de le changer? Il est écrit "ne modifiez pas le contenu de cette méthode avec l'éditeur de code". Alors, où puis-je le modifier alors?

Update: Je mettais à jour mon service Windows via le processus de construction de Visual Studio, qui n'a apparemment aucun effet sur les modifications de nom configurées dans le programme d'installation du service. Je pense qu'il exécute une commande de désinstallation et d'installation avec InstallUtil. Au lieu de cela, je devais aller dans le répertoire de sortie du processus de construction où se trouvaient 2 fichiers. Un fichier msi et un fichier setup.exe. Le MSI installe le service, MAIS il n'y a pas de changement de nom. Toutefois, si j'exécute le fichier setup.exe, il en fait de même, mais les modifications de nom apportées au service sont incluses. Donc, je suppose que le projetinstaller/serviceinstaller est inclus dans le fichier setup.exe et non l’autre.

Enfin, merci à tous pour votre aide.

33
Kasper Hansen

Vous devez ajouter une classe d’installateur à votre projet de service Windows. Ensuite, dans son concepteur, vous ajoutez ServiceInstaller et ServiceProcessInstaller. Dans les objets de ces deux classes, vous pouvez spécifier le nom du service, le nom complet du service, l'utilisateur, etc.

Vous pouvez voir une explication détaillée ici:
http://utkarshpuranik.wordpress.com/2010/06/07/creating-installing-debugging-windows-services/

25
Utkarsh

Vous avez peut-être ajouté un programme d'installation en cliquant avec le bouton droit de la souris sur la vue création de votre classe de service Windows. Si vous avez fait cela, vous trouverez un classe ProjectInstaller dans votre projet WindowsService. 

En sélectionnant cette classe ProjectInstaller, vous trouverez deux programmes d'installation dans sa vue Création -> 1.ServiceInstaller1 2.ServiceProcessInstaller1

Cliquez avec le bouton droit sur ServiceInstaller1 et sélectionnez Propriétés. Dans la fenêtre des propriétés remplacez le Nom du service par le nom que vous souhaitez} à donner à votre service.

J'espère que ça marche ...

32
Harun

Dans Visual Studio 2010, vous pouvez double-cliquer sur l'entrée du fichier de service dans l'explorateur de solutions (nommée "AService" dans votre cas). Dans la fenêtre des propriétés, modifiez simplement l'entrée sous "NomService".

6
Jimmy W

dans VS2012 et 2015, si vous souhaitez le modifier dans VS Designer, double-cliquez sur votre fichier de classe de service, par exemple. MyCustomService.cs, puis en mode conception, cliquez avec le bouton droit de la souris et choisissez Propriétés.

 enter image description here

cela vous donne la possibilité de changer visuellement le nom du service.

 enter image description here

5
Ryan

Cela dépend de la façon dont vous l'installez

  • Si vous utilisez SC.EXE, il vous suffit de modifier le paramètre du nom d'affichage.
  • Si vous utilisez la classe ServiceInstaller, changez son nom d'affichage.
3
Wojtek Turowicz

Aucune de ce qui précède ne fonctionne pour moi, donc partager ce qui fonctionne réellement Accédez à votre fichier "ProjectInstaller.Designer.cs" et mettez la ligne à jour:

this.serviceInstaller1.ServiceName = "Updated Name";

Il devrait être sous la méthode: InitializeComponent ()

J'espère que ça aide quelqu'un !!!

1
Suresh Kamrushi