Ich verwende Topshelf kombiniert mit FluentSchedule für einen Windows-Dienst.
Ich möchte jedoch die Anwendung testen können, um einfach zu starten und den FluentSchedule-Code nicht auszuführen, der den Timer usw. einrichtet.
Gibt es eine Möglichkeit, die exe-Datei über die Befehlszeile auszuführen (d. h. ohne den Befehl 'install'), um von TopShelf aus zu überprüfen, ob sie im Konsolenmodus ausgeführt wird?
Es ist eine Art Hack, aber Sie können versuchen, die HostControl
-Schnittstelle auf ConsoleRunHost
zu konvertieren, und wenn es dieser Typ ist, werden Sie als Konsolenanwendung ausgeführt.
Es ist nicht ideal, sicher, aber sicher können Sie das in einer Erweiterungsmethode verbergen, um es weniger hässlich zu machen.
%Vor% Sie können Environment.UserInteractive
verwenden. Technisch funktioniert das nicht in 100% der Fälle, da es möglich ist, einen Dienst im benutzerinteraktiven Modus auszuführen, aber dies ist ein Randfall.
Tags und Links topshelf