/ / Beenden Sie einen Dienst vor der Installation - Visual Studio, Windows-Dienste, Setup-Projekt

Stoppen Sie einen Dienst vor der Installation - Visual Studio, Windows-Dienste, Setup-Projekt

Ich habe eine Anwendung geschrieben, die mithilfe des Visual Studio 2010-Installationsprojekts installiert wird. Im Rahmen der Installation installiert und startet meine Anwendung einen Windows-Dienst. Keine Probleme da.

Wenn ich eine neue Version der Anwendung freigebe, überschreibt das Installationsprogramm den Inhalt des Anwendungsordners. Leider kann der Dienst nicht überschrieben werden, da er bereits ausgeführt wird.

Wie kann ich den Dienst beenden, bevor das MSI gestartet wird?Dateien kopieren? Ich erwäge einen benutzerdefinierten Bootstrapper (Installationsvoraussetzung), der nicht installiert, sondern den Dienst entfernt. Oder kann ich mit Orca vor der Installation eine Aktion hinzufügen? Oder kennst du einen anderen Weg?

Antworten:

3 für die Antwort № 1

Normalerweise geschieht dies durch Servicesteuerungsvorgänge. Grundsätzlich müssen die Flags Stop und Delete für die Deinstallation gesetzt sein.

Ein anderer Ansatz wäre zu verwenden ServiceInstaller.Uninstall in einer benutzerdefinierten Aktion zum Beenden und Entfernen des Dienstes.

Wenn Sie das Dialogfeld "Verwendete Dateien" vermeiden möchten, können Sie diesen Ansatz ausprobieren: Problem beim Beenden des Windows-Dienstes von der Installationsklasse. Ereignisse werden zu spät ausgelöst