Я хотел бы создать и управлять приложением Windows Service без «помощи» дизайнера Visual Studio.
Поскольку это .NET, и судя по MSDN и тому, что делает дизайнер, это означает наследование от установщика
, а также создание и работу с ServiceProcessInstaller
и ServiceInstaller
, чтобы иметь возможность управлять выполнением службы во время установки.
Время выполнения это означает создание подкласса ServiceBase
и запуск его из Main
с использованием ServiceBase.Run
(и переопределение различных методов обработки событий ServiceBase
).
Однако, когда я это делаю, Visual Studio настаивает на том, чтобы рассматривать подклассы Installer
и ServiceBase
как файлы, отредактированные дизайнером. Это не совсем способствует удобочитаемости, не говоря уже о том, что он вообще не может работать с рукописным кодом. Я ' Мне бы хотелось избежать конструктора , чтобы все было управляемым (чтобы избежать туманных, неизвестных, что запускает, когда, особенно для кода, который сложно тестировать и отлаживать, например служб Windows, которые в конце концов должны быть установленным для запуска вообще), а также иметь возможность указать имя службы во время выполнения, а не во время компиляции - разработчик не поддерживает это.
Как я могу создать приложение службы Windows без весь мусор?