Я создаю многоразовый framework for building scheduling services с использованием .NET Framework. Мой код распространяется как библиотека, на которую ссылается пользователь в консольном приложении. В основной точке входа приложения пользователю предлагается передать управление статическому методу в библиотеке, который приступит к планированию заданий, если он будет работать в неинтерактивном режиме, а также читать аргументы команды и выполнять задачи обслуживания, такие как установка.Как установить службу Windows без расширения Installer?
Чтобы установить приложение в качестве службы Windows с использованием пространства имен System.Configuration.Install
, пользователю необходимо добавить потомок класса Installer
в сборку приложения, в котором сообщается инфраструктуре о том, как установить службу. Я бы предпочел сделать это раз и навсегда в библиотеке, но, к сожалению, у установщика класса есть, чтобы быть в сборке приложений.
Решение, которое я сейчас рассматриваю, включает определение класса установщика в библиотеке и требование унаследовать его в открытом классе без добавления дополнительного кода. Хотя это работает, для этого требуется, чтобы пользователь написал раздражающий код плиты котла.
Каковы альтернативы продлению Installer
? Могу ли я получить доступ к управляемой структуре установки более прямым образом?
Класс установщика по-прежнему должен находиться в сборке входа, а не в справочной библиотеке, правильно? –
Да, класс установщика находится в сборке, но практически пуст. Я еще не пытался завершить работу с установщиком, но, возможно, это будет возможно, так как это необходимо только InstallUtil. – Filburt
Обратите внимание, что «sc.exe» недоступен в Win2000 (не в установке по умолчанию, но может быть установлен с некоторым набором инструментов от MS). – kibab