So erkennen Sie, ob das Topshelf im Konsolenmodus ausgeführt wird

8

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?

    
Redeemed1 26.02.2015, 11:00
quelle

2 Antworten

12

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%     
Chris Patterson 30.04.2015, 19:28
quelle
7

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.

    
Francois Botha 27.07.2015 11:25
quelle

Tags und Links