Non devi incapsulare nulla. L'exe è sempre lo stesso.Io non sono uni sistemista, ma possibile che l'unica strada sia quella d'incapsulare il mio eseguibile in un servizio? Una cosa più immediata non c'è?
Semplicemente, all'interno del codice, dovrai aggiungere dei richiami a delle funzioni di sistema che ti facciano partire tale eseguibile come "servizio" anzichè come un "comune" processo.
La differenza sostanziale tra i due è che il primo parte in startup indipendentemente che un'utenza si sia gia loggata o meno, il che soddisfa appieno la tua esigenza di:
> Anche se il server cade e poi riparte dovrebbe ripartire anche la mia applicazione.
Se del programma in questione hai i sorgenti la domanda è pertinente ed IT (si lavora sul codice), altrimenti no (devi usare tool di terze parti con cui "servizierizzare" (o seviziare, a seconda dei gusti :P) l'eseguibile.)
Saluti.