Ваш сервис должен принять аргумент для регистрации в качестве сервиса:
MyService.exe /i
В вашем сервисе вы проверяете этот аргумент и, если он присутствует, получаете сервис для регистрации самого себя:
ManagedInstallerClass.InstallHelper(args);
См. мой ответ на этот вопрос для более подробной информации. Таким образом, вы можете заставить пользователя самостоятельно зарегистрировать службу через командную строку.
Если это все еще слишком сложно для ваших пользователей, вы можете использовать Environment.UserInteractive
, чтобы проверить, дважды ли пользователь щелкнул сервис. Если это так, установите / удалите службу. Если это не так, запустите службу (это будет маршрут, выбранный при запуске службы через апплет служб и при запуске компьютера).