Посмотри на Go. Я его выбрал именно по этому критерию, я не хочу таскать никакие зависимости по машинам или страдать от разных версий каких-то дотнетов, к тому же я хочу успешно запускаться вообще в линуксах/докерах.
Go тут оказался для меня швейцарским ножом.
Но службы Windows я задолбался писать на нем, забейте на эту идею. Основной проблемой там является то, что у службы нет понятия "рабочий каталог" и допустимо использовать только абсолютные пути. Короче я сильно плюнул на windows службы и ушел в linux-контейнеры, если мне надо сделать постоянно живущее приложение.