Если вы уверены, что приложение может безопасно работать без присмотра (под этим я имею в виду, что оно может никогда вызывать модальный элемент пользовательского интерфейса, такой как окно сообщения), и оно не нужно любое взаимодействие до завершения, когда оно будет просто прекращено, а затем запустите его как запланированную задачу с триггером, настроенным на запуск системы.
Если он может работать без присмотра, но может потребоваться его отключение и перезапуск вручную или его нельзя просто завершить при выключении, используйте XYNTService в соответствии с рекомендациями EnocNRoll . Это ужасный хак, но он будет работать на то, что вы хотите.
Но, безусловно, лучшее решение - это отделить функциональность вашей программы от пользовательского интерфейса и написать надлежащий сервис. И для производственного сервера я бы не позволил ничего другого. Если разделить непросто, у вас есть некоторые проблемы с дизайном, которые вам все равно следует изучить.