Есть хороший пример того, как настроить минимальный сервис на MSDN . См. Части о написании основной функции, точки входа, а также пример кода.
После того, как вы создали и запустили службу Windows, вы обнаружите следующую важную особенность: отладка становится проблемой. Там нет терминала (и, следовательно, нет stdout / stderr), и как только вы пытаетесь запустить исполняемый файл, он фактически запускает службу, а затем возвращается к вам.
Один трюк, который я нашел очень полезным, - это добавить опцию -foreground
в ваше приложение, чтобы, если вы запускаете с этим флагом, он обходит код запуска службы и вместо этого запускался как обычное консольное приложение, что значительно расширяет его возможности. легче отлаживать. В VS.Net установите параметры отладки для вызова с этим флагом.