it-swarm.com.de

Wie ändere ich den Namen meines Windows-Dienstes?

Ich habe einen Windows-Dienst und möchte den Namen ändern (wie er in der Dienstanwendung angezeigt wird). Aber ich bin nicht sicher, wie ich das richtig mache. Es scheint die ServiceName-Eigenschaft zu sein und beim Durchsuchen meiner Lösung habe ich Folgendes gefunden:

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
    }
}

Dies scheint also ein automatisch generierter Code zu sein. Was ist der richtige Weg, um es zu ändern? Es heißt "den Inhalt dieser Methode nicht mit dem Code-Editor ändern". Also wo modifiziere ich es dann?

Update: Ich habe meinen Windows-Dienst über den Erstellungsprozess in Visual Studio aktualisiert. Dies hat anscheinend keine Auswirkungen auf Namensänderungen, die im Dienstinstallationsprogramm eingerichtet wurden. Ich denke, es führt einen Deinstallations- und Installationsbefehl mit InstallUtil aus. Stattdessen musste ich in das Ausgabeverzeichnis des Erstellungsprozesses wechseln, in dem sich 2 Dateien befinden. Eine msi-Datei und eine setup.exe-Datei. Die MSI installiert den Dienst, ABER es gibt keine Namensänderungen. Wenn ich jedoch die setup.exe ausführe, wird dasselbe gemacht, aber Namensänderungen am Dienst sind enthalten. Ich denke also, dass der Projektinstaller/serviceinstaller in der setup.exe enthalten ist und nicht der andere.

Zum Schluss vielen Dank für Ihre Hilfe.

33
Kasper Hansen

Sie müssen Ihrem Windows-Dienstprojekt eine Installationsklasse hinzufügen. Dann fügen Sie in seinem Designer ServiceInstaller und ServiceProcessInstaller hinzu. In Objekten dieser beiden Klassen können Sie den Servicenamen, den Anzeigenamen für den Service, den Benutzer usw. angeben.

Eine ausführliche Erklärung finden Sie hier:
http://utkarshpuranik.wordpress.com/2010/06/07/creating-installing-debugging-windows-services/

25
Utkarsh

Möglicherweise haben Sie ein Installationsprogramm hinzugefügt, indem Sie mit der rechten Maustaste auf die Designansicht Ihrer Windows-Serviceklasse klicken. Wenn Sie dies getan haben, finden Sie eine ProjectInstaller-Klasse in Ihrem WindowsService-Projekt. 

Wenn Sie diese ProjectInstaller -Klasse auswählen, finden Sie in der Entwurfsansicht zwei Installationsprogramme -> 1.ServiceInstaller1 2.ServiceProcessInstaller1

Klicken Sie mit der rechten Maustaste auf den ServiceInstaller1 und wählen Sie Eigenschaften ./Ändern Sie im Eigenschaftenfenster den Dienstnamen in den Namen, den Sie Ihrem Dienst geben möchten.

Hoffe das klappt ...

32
Harun

In Visual Studio 2010 können Sie im Projektmappen-Explorer (in Ihrem Fall "AService") auf den Eintrag für die Servicedatei doppelklicken. Ändern Sie im Eigenschaftenfenster einfach den Eintrag unter "ServiceName".

6
Jimmy W

wenn Sie es in VS2012 und 2015 in VS Designer ändern möchten, doppelklicken Sie auf Ihre Serviceklassendatei, z. MyCustomService.cs und dann in der Entwurfsansicht mit der rechten Maustaste und wählen Sie Eigenschaften.

 enter image description here

dadurch haben Sie die Möglichkeit, den Dienstnamen visuell zu ändern.

 enter image description here

5
Ryan

Es hängt von der Installationsweise ab

  • Wenn Sie SC.EXE verwenden, ändern Sie einfach den Parameter für den Anzeigenamen
  • Wenn Sie die ServiceInstaller-Klasse verwenden, ändern Sie ihren Anzeigenamen
3
Wojtek Turowicz

Keines der oben genannten Probleme funktioniert für mich. Teilen Sie also, was tatsächlich funktioniert. __ Gehen Sie zu Ihrer Datei "ProjectInstaller.Designer.cs" und aktualisieren Sie die Zeile:

this.serviceInstaller1.ServiceName = "Updated Name";

Es sollte unter method sein: InitializeComponent ()

Hoffe es hilft jemandem !!!

1
Suresh Kamrushi