2016-04-30 2 views
2

Ich habe ein .NET-Projekt, das die Verantwortung der PC-Zeiterfassung von der Windows-eingebauten W32Time-Dienst auf den Open-Source-NTP-Dienst zu ändern.Beenden Sie jemand anderen Service auf WIX installieren

Also muss ich den W32Time-Dienst während der Installation deaktivieren. Kann dies unter Verwendung des ServiceControl Elements geschehen, oder ist das nur für die eigenen Dienste von Nutzen? (Das Attribut 'Entfernen' weist darauf hin, dass es nicht für andere Dienste verwendet werden kann).

Wenn letzteres die nächste Möglichkeit ist, verwenden Sie CustomAction, um den sc stop Befehl auszuführen?

(Übrigens, es gibt viele ähnliche Fragen, aber soweit ich sehen kann, sind sie alle über Dienste, die vom WIX-Installer installiert werden).

Antwort

3

ServiceControl stoppt den Dienst - die Aktion ist nicht auf die von Ihnen installierten Dienste beschränkt. Was tun Sie jedoch, wenn der Dienst so konfiguriert ist, dass er bei einem Neustart startet? Es gibt keine Windows Installer-Funktionalität, um einen Dienst neu zu konfigurieren, den Sie nicht installieren. Sie benötigen Code, um diese Einstellung zu ändern.

Ich weiß nicht genau, wie Sie das machen, oder wie weit Sie damit fertig sind, aber es ist möglich, dass Windows den Dienst für Sie stoppt, wenn Sie die Time Provider-Funktionen verwenden (und markieren Sie ihn, um keinen Neustart zu starten) und es ist nicht nötig, etwas dagegen zu tun.

+1

Danke. Ich habe entdeckt, dass diese Befehle stoppen und sie deaktivieren und bei einem Neustart erhalten bleiben: 'net stop W32Time'; 'sc config W32Time start = deaktiviert' Also ich denke, ich muss das in einer customAction ausführen – spiderplant0