Практическое руководство. Добавление установщиков в приложение служб
Примечание.
Эта статья не относится к размещенным службам в .NET. Последние сведения об использовании Microsoft.Extensions.Hosting.BackgroundService служб Windows и шаблоне рабочей службы см. в следующих статье:
В состав Visual Studio входят компоненты установки, которые могут устанавливать ресурсы, связанные с приложениями-службами. Компоненты установки регистрируют отдельную службу в целевой системе и сообщают диспетчеру служб об этой службе. При работе с приложением-службой можно выбрать ссылку в окне свойств для автоматического добавления соответствующих установщиков в проект.
Примечание.
Значения свойств для службы копируются из класса службы в класс установщика. Обновляемые значения свойств в классе службы не обновляются автоматически в установщике.
При добавлении установщика в проект в нем создается класс (который по умолчанию называется ProjectInstaller
), а в нем создаются экземпляры соответствующих компонентов установки. Этот класс служит центральной точкой для всех компонентов установки, которые требуются для проекта. Например, если добавить в приложение вторую службу и щелкнуть ссылку "Добавить установщик", второй класс установщика не будет создан. Вместо этого в существующий класс будет добавлен дополнительный необходимый компонент установки для второй службы.
Вам не нужно добавлять специальный код в установщики, чтобы обеспечить правильную установку службы. Тем не менее иногда может потребоваться изменить содержимое установщиков, если вам нужно добавить специальные функции в процесс установки.
Примечание.
В зависимости от установок или выпуска сервера доступные диалоговые окна и команды меню могут отличаться от описанных в справке. Чтобы изменить параметры, выберите Импорт и экспорт параметров в меню Сервис . Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки Visual Studio.
Добавление установщиков в приложение-службу
В обозревателе решений откройте конструктор для службы, в которую нужно добавить компонент установки.
Щелкните фон конструктора, чтобы выбрать саму службу, а не один из ее элементов.
Щелкните правой кнопкой мыши в активном окне конструктора и выберите команду Добавить установщик.
В проект будут добавлены новый класс
ProjectInstaller
и два компонента установки ServiceProcessInstaller и ServiceInstaller, в которые будут скопированы значения свойств для службы.Щелкните компонент ServiceInstaller и убедитесь, что для свойства ServiceName задано то же значение, что и для свойства ServiceName в службе.
Чтобы определить, как будет запущена служба, щелкните компонент ServiceInstaller и задайте для свойства StartType соответствующее значение.
Значение Результат Manual Служба должна быть запущена вручную после установки. Дополнительные сведения см. в практическом руководстве по запуску служб. Automatic Служба будет запускаться сама при перезагрузке компьютера. Disabled Запуск службы невозможен. Чтобы определить контекст безопасности, в котором будет запущена служба, щелкните компонент ServiceProcessInstaller и задайте соответствующие значения свойств. Дополнительные сведения см. в разделе Практическое руководство. Назначение службам контекста безопасности.
Переопределите все методы, для которых нужно выполнить дополнительную обработку.
Повторите шаги 1–7 для каждой дополнительной службы в проекте.
Примечание.
Для каждой дополнительной службы в проекте необходимо добавить в класс
ProjectInstaller
проекта дополнительный компонент ServiceInstaller. Компонент ServiceProcessInstaller, добавленный на шаге 3, работает со всеми отдельными установщиками служб в проекте.