2010-11-27 12 views
1

Die Reparatur-Funktion für ein Setup-Projekt ist im Grunde eine Neuinstallation, aber wegen meiner benutzerdefinierten Installation/Commit/Rollback/Deinstallieren Aktion zum Verwalten eines Windows-Dienstes Meine Reparatur schlägt fehl, da der Service bereits existiert, wenn die Reparaturfunktion aufgerufen wird.Reparatur-Setup-Projekt löst Fehler 1001: "Der angegebene Dienst existiert bereits"

Das Setup-Projekt sollte zuerst den Dienst entfernen, bevor es repariert wird. Ich spreche bereits benutzerdefinierte Aktionen über using System.Configuration.Install, so sollte es möglich sein.

Wie weise ich die Reparaturfunktion an, um den Dienst zuerst zu entfernen?

Antwort

3

Wenn Sie nach einer schnellen Lösung suchen, können Sie den Dienst in der benutzerdefinierten Aktion immer manuell löschen.

einen neuen Prozess auf den Aufruf erstellen die „sc.exe“ mit den Parametern wie folgt:

sc.exe delete [service name] 

natürlich, werden Sie einige Ausnahmebehandlung hier verlangen, wenn der Dienst bereits existiert oder nicht überprüfen .