Vorgehensweise: Installieren und Deinstallieren von Windows-Diensten

Hinweis

Dieser Artikel gilt nicht für gehostete Dienste in .NET. Die neuesten Inhalte zu Windows-Diensten mit Microsoft.Extensions.Hosting.BackgroundService und die Workerdienstvorlage finden Sie unter:

Wenn Sie einen Windows-Dienst mit dem .NET Framework entwickeln, können Sie Ihre Dienstanwendung schnell installieren, indem Sie das Befehlszeilendienstprogramm installutil.exe oder PowerShell verwenden. Wenn Sie einen Windows-Dienst veröffentlichen möchten, den Benutzer installieren und deinstallieren können, können das kostenlose WiX-Toolset oder kommerzielle Tools wie Advanced Installer und InstallShield verwenden. Weitere Informationen finden Sie unter Erstellen eines Installationspakets (Windows-Desktop).

Warnung

Wenn Sie einen Dienst auf Ihrem Computer deinstallieren möchten, den Sie nicht entwickelt haben, befolgen Sie die Schritte in diesem Artikel nicht. In diesem Fall finden Sie heraus, welches Programm oder Software-Paket den Dienst installiert hat. Wählen Sie dann in den Einstellungen Apps aus, um das Programm zu deinstallieren. Viele Dienste sind Bestandteile von Windows. Wenn Sie sie entfernen, können Sie die Instabilität des Systems verursachen.

Sie müssen zunächst ein Dienstinstallationsprogramm zu Ihrem Windows-Dienst hinzufügen, um die in diesem Artikel aufgeführten Schritte ausführen zu können. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen einer Windows-Dienstanwendung.

Sie können Windows-Dienstprojekte nicht durch Drücken von F5 direkt aus der Entwicklungsumgebung von Visual Studio ausführen. Bevor Sie das Projekt ausführen können, müssen Sie den Dienst im Projekt installieren.

Tipp

Sie können den Server-Explorer verwenden, um zu überprüfen, ob Sie Ihren Dienst installiert oder deinstalliert haben.

Installieren mithilfe des Hilfsprogramms installutil.exe

  1. Öffnen Sie die Developer-Eingabeaufforderung für VS.

    Wählen Sie im Menü StartAlle Apps aus, erweitern Sie Visual Studio <Version>, und wählen Sie dann Developer-Eingabeaufforderung für VS <Version> aus.

  2. Navigieren Sie zu dem Verzeichnis, in dem sich die kompilierte ausführbare Datei Ihres Projekts befindet.

  3. Führen Sie die InstallUtil.exe über die Eingabeaufforderung mit der ausführbaren Datei Ihres Projekts als Argument aus:

    installutil <yourproject>.exe
    

    Wenn Sie die Developer-Eingabeaufforderung für Visual Studio verwenden, befindet sich InstallUtil.exe bereits im Systempfad. Andernfalls können Sie die Datei in den Pfad einfügen oder den vollqualifizierten Pfad zum Aufrufen verwenden. Dieses Tool wird mit .NET Framework in %WINDIR%\Microsoft.NET\Framework[64]\<Frameworkversion> installiert.

Deinstallieren mithilfe des Hilfsprogramms installutil.exe

  1. Öffnen Sie die Developer-Eingabeaufforderung für VS.

    Wählen Sie im Menü StartAlle Apps aus, erweitern Sie Visual Studio <Version>, und wählen Sie dann Developer-Eingabeaufforderung für VS <Version> aus.

  2. Führen Sie die InstallUtil.exe über die Eingabeaufforderung mit der Option /uninstall und der ausführbaren Datei Ihres Projekts aus:

    installutil /uninstall <yourproject>.exe
    
  3. Nachdem die ausführbare Datei für ein Dienst gelöscht wurde, kann der Dienst weiterhin in der Registrierung vorhanden sein. Verwenden Sie in diesem Fall den Befehl sc delete, um den Eintrag für den Dienst aus der Registrierung zu entfernen.

Installieren mithilfe von PowerShell

  1. Suchen Sie im Startmenü nach Windows PowerShell, und wählen Sie die Option aus.

  2. Navigieren Sie zu dem Verzeichnis, in dem sich die kompilierte ausführbare Datei Ihres Projekts befindet.

  3. Führen Sie das Cmdlet New-Service mit einem Dienstnamen und der ausführbaren Datei des Projekts als Argumente aus:

    New-Service -Name "YourServiceName" -BinaryPathName <yourproject>.exe
    

Deinstallation mithilfe von PowerShell

  1. Suchen Sie im Startmenü nach Windows PowerShell, und wählen Sie die Option aus.

  2. Führen Sie das Cmdlet Dienst entfernen mit dem Namen Ihres Diensts als Argument aus:

    Remove-Service -Name "YourServiceName"
    

    Hinweis

    Sie müssen über PowerShell 6 oder höher verfügen, um dieses Cmdlet verwenden zu können. Weitere Informationen zum Aktualisieren von PowerShell finden Sie unter Installieren von PowerShell unter Windows.

  3. Nachdem die ausführbare Datei für ein Dienst gelöscht wurde, kann der Dienst weiterhin in der Registrierung vorhanden sein. Verwenden Sie in diesem Fall den Befehl sc delete, um den Eintrag für den Dienst aus der Registrierung zu entfernen.

    sc.exe delete "YourServiceName"
    

Siehe auch