Ich bin immer noch ziemlich neu in c #, also wirst du es mit mir ertragen müssen.
Ich habe ein Windows-Formular-Programm entwickelt, das einige SQL-Datensätze als Tagesabschluss für einen unserer Kunden aktualisiert.
Der nächste Schritt ist, dass ich das Programm auf einem Server installieren und einen Knopfklick im Programm simulieren muss, um eine geplante Aufgabe zu werden.
Ich weiß, wie Sie die Aufgabe auf der Serverseite einrichten, wo Sie das Programm starten und die Argumente eingeben. Aber ich bin unsicher, welchen Code ich in mein Programm aufnehmen muss, um dies zu erreichen.
Meine Empfehlung wäre, von einer GUI-basierten / gefensterten Anwendung von einer geplanten Aufgabe abzuraten - das ist in der Praxis in der Regel Wahnsinn. Im Idealfall stellen Sie eine konsolenbasierte Version Ihrer Anwendung bereit, die ausgeführt werden muss (möglicherweise mit Parameterargumenten) und keine Benutzer- (oder Quasi-Benutzer-) Interaktion erfordert.
Wenn Sie einfach nicht eine 'Systemversion' Ihrer Anwendung erstellen können, dann haben Sie zwei Möglichkeiten, beide immens hässlich: 1) Erstellen Sie eine Art Makroskript, das stattdessen ausgeführt wird Ihres Programms könnte dieses Skript das Programm ausführen und 'den Klick' auslösen, 2) den 'Klick' beim Start Ihrer Anwendung ausführen, indem der Button-Klick-Handler aufgerufen wird (möglicherweise basierend auf einem Parameter, um ihn in Ausführungsmodi zu dualieren). )
Erwägen Sie, Windows Task Scheduler zu verwenden .
Sie können Ihre Geschäftslogik in eine separate DLL extrahieren und eine einfache Konsolenanwendung schreiben, die Ihre Aufgabe nur ausführt, nachdem Sie die Parameter über die Befehlszeile akzeptiert haben.
Ich denke, Sie fragen auch nach der Übergabe von Befehlszeilenargumenten. Siehe die Antworten zu diese Frage .
>Ich empfehle insbesondere die akzeptierte Antwort : NDesk.Options .
Wenn es sich um eine Windows-Anwendung handelt, gehen Sie einfach in den bin-Ordner, rufen Sie die ausführbare Datei ab und planen Sie schließlich eine Aufgabe dafür, indem Sie die windows-Aufgabe verwenden und die exe-Datei als Zielanwendung auswählen.
Wenn es sich um eine Webanwendung handelt, möchten Sie vielleicht Ihren Code in einen quartz.net geplanten Job aufnehmen, Details finden Sie auf der quartz.net-Website.
Wenn ich Ihre Frage richtig verstehe, können Sie so weitermachen:
Warum extrahieren Sie Ihre Datenbankaktualisierungslogik nicht als Windows-Dienst
Sie können den SQL-Bearbeitungsteil in einem separaten DLL
trennen und den gemeinsamen DLL
für Ihre Formularanwendung und den Windows-Dienst verwenden.
Ein Fensterdienst wird im Hintergrund ausgeführt und kann beim Booten des Computers automatisch gestartet werden, kann angehalten und neu gestartet werden und zeigt keine Benutzeroberfläche an.
Außerdem müssen Sie keine Software von Drittanbietern für diese Software installieren, und die Windows Service-Code-Basis kann auf jede Windows-Maschine mit der erforderlichen Version von .Net Framework
installiert werden.