AFAIK, вы не можете использовать ClickOnce от начала до конца для развертывания службы; существуют проблемы как с расположением файлов (ClickOnce устанавливается в профиль пользователя), так и с установкой (ClickOnce в значительной степени не имеет побочных эффектов).
Тем не менее, вы можете написать сервис как exe-файл, который можно самостоятельно установить / удалить из списка сервисов, , например, ; в основном вы пишете его как консольный exe и обрабатываете некоторые аргументы командной строки, используя AssemblyInstaller
для [un] установки из текущей сборки. Другое преимущество заключается в том, что тот же подход может быть использован для отладки, так как вы можете запустить его из командной строки.