C# Methode zum Neustarten (Konsolenanwendung)?

2 Antworten

Grob umschrieben:

Setz in C# ein kleines CMD-Script zusammen, das paar Sekunden wartet und danach die eigene Exe startet, ggf. mit bestimmten Parametern. Das startest Du dann (Process-Klasse) und beendest zügig die Anwendung.

Aber ganz ehrlich:

Mach das nicht, Du baust dir damit eklige Probleme, bei denen jeder Debugger und jedes andere Tool versagt. Außerdem bezweifle ich, dass es einen Anwendungsfall gibt, bei dem das tatsächlich sinnvoll ist und nicht auf viel bessere Weise umsetzbar ist.
Einzig sinnvoller Anwendungsfall: Die Anwendung soll sich selbst aktualisieren können.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

Palladin007  21.04.2020, 16:48

PS:

Alternativ kannst Du einfach direkt mit Process die eigene Exe starten und dann sich selbst beenden.

Dann hast Du sie aber kurz doppelt offen, je nachdem, was Du machst, kann das Probleme verursachen, außerdem sieht's doof aus.

0

https://www.google.com/search?q=c%23+system+reboot

Sofern ein Administrator oder root das Auslösen eines Neustarts durch gewöhnliche Anwender untersagt hat, erfordert dies allerdings, dass das Restart-Progrämmchen mit Administratorrechten (Windows) bzw. root-Rechten (Linux, MacOS, Android) ausgestattet ist.

(In allen genannten Betriebssystemen braucht nur das Progrämmchen selbst erhöhte Rechte, nicht notwendigerweise das aufrufende Programm. Hierzu kann man bestimmte Einstellungen vornehmen, die von System zu System sehr unterschiedlich sein können.)

Woher ich das weiß:Berufserfahrung – Software-Entwickler

poposalat 
Beitragsersteller
 21.04.2020, 15:15

Nein ich meine um das Programm an sich von vorne zu starten das ich halt wieder nach aufrufen der Methode wieder zum Anfang des Programms springe.

0
poposalat 
Beitragsersteller
 21.04.2020, 15:20
@PWolff

das Problem ist bei einer Konsolen Anwendung findet er das Application. nicht

0
PWolff  21.04.2020, 15:28
@poposalat

Sorry, hab ich übersehen bzw. nicht dran gedacht, dass es zwischen Konsolen- und Forms-Anwendungen ein paar völlig unverständliche Unterschiede gibt.

https://www.google.com/search?c%23+restart+console+application

Du könntest z. B. ein Hilfsprogramm aufrufen und das laufende Programm beenden. Das Hilfsprogramm wartet, bis der laufende Prozess des aktuellen Programms beendet ist und ruft dann seinerseits das aktuelle Programm (mit den aktuellen oder geänderten Parametern) auf und beendet sich dann ebenfalls selbst.

Oder das Programm ruft sich direkt selbst auf. Erfordert aber, dass es mehr als eine Instanz zulässt.

(Wenn die Aufrufparameter geändert werden sollen, ist der Neuaufruf m. W. der einzige Weg. Aber die Parameter werden sinnvollerweise ohnehin in Variablen jeweils geeigneten Typs gespeichert.)

Oder du bindest das Paket mit dem Application-Objekt ein.

0