È necessario specificare un codice di uscita diverso dal valore predefinito 0 (che significa successo). È possibile farlo utilizzando
Environment.Exit(someNumber)
Environment.Exit
Si avrebbe bisogno di avere un gestore di eccezioni globale per fare questo per le eccezioni non gestite fanno altrimenti. Questo post del blog fornisce ulteriori dettagli: http://jrich523.wordpress.com/tag/task-scheduler/
EDIT
ho fatto un presupposto che il problema era nella vostra applicazione. Sai cosa dicono delle ipotesi. Il problema, si scopre è nella progettazione di Task Scheduler. Come sottolineato qui:
How does Windows Task Scheduler in Win7 recognize a failed task?
che ho verificato in fase di test
la pianificazione di Windows non esaminare il codice di uscita o qualsiasi altro valore quando il compito viene completata. È necessario gestire qualsiasi errore durante l'elaborazione di all'interno del proprio script o programma.
Se si guarda nella cronologia per l'attività pianificata, è necessario visualizzare due eventi e Azione completata, seguita da un'attività completata. Se si esamina l'azione completata, dovrebbe essere simile a questa:
Utilità di pianificazione attività completata con successo "\ test4", esempio "{a41adae0-a378-45f6-AADC-648d27852042}", l'azione "C : \ blah..blah \ Release \ WpfApplication1.exe" con codice di ritorno 55.
Come si può vedere, l'applicazione uscito con un codice di ritorno, ma Utilità di pianificazione, dice ancora il successo. L'unica soluzione che vedo è gestirla da solo facendo clic con il pulsante destro del mouse sulla voce della cronologia e selezionando "Collega attività a questo evento ...".
Oppure, è possibile eseguire l'applicazione da un file batch e fare in modo che il file batch esamini il codice di uscita e agisca di conseguenza. Dovresti quindi utilizzare l'Utilità di pianificazione per pianificare il file batch invece di pianificare direttamente l'applicazione WPF.
Per quanto riguarda la restituzione di un codice di uscita dall'app WPF, potrebbe essere necessario fare clic con il pulsante destro del mouse sulle proprietà del progetto in Visual Studio e, nella scheda Applicazioni, selezionare Applicazione console per Tipo di output. Inoltre, utilizzare una build di rilascio in Utilità di pianificazione piuttosto che una build di debug per garantire che venga utilizzato il codice di uscita dell'applicazione, non qualcosa generato dal materiale di debug aggiunto. È possibile verificare per vedere se la vostra applicazione è correttamente generando un codice di uscita rendendo questo piccolo file batch nella stessa cartella del file exe ed eseguirlo (sostituendo il nome del file exe del vostro app):
wpfapplication1.exe
echo %errorlevel%
pause
tuo codice originale può impostare correttamente il codice di uscita, ma Shutdown è un'uscita più delicata, e potrebbe non uscire immediatamente (o affatto), poiché attenderà che i thread e così via escano con grazia. Environment.Exit uscirà più energicamente.
Hai provato a uscire con un codice di ritorno diverso da quello predefinito 0? Vedi http://stackoverflow.com/questions/155610/how-do-i-specify-the-exit-code-of-a-console-application-in-net – hatchet
Sì, ho provato ma ho sempre successo. –
possibile duplicato di [In che modo l'Utilità di pianificazione di Windows in Win7 riconosce un'attività non riuscita?] (Http://stackoverflow.com/questions/1335551/how-does-windows-task-scheduler-in-win7-recognize-a-failed -task) – Gabrielius