Практическое руководство. Добавление установщиков в приложение-службуHow to: Add Installers to Your Service Application

В состав Visual Studio входят компоненты установки, которые могут устанавливать ресурсы, связанные с приложениями-службами.Visual Studio ships installation components that can install resources associated with your service applications. Компоненты установки регистрируют отдельную службу в целевой системе и сообщают диспетчеру служб об этой службе.Installation components register an individual service on the system to which it is being installed and let the Services Control Manager know that the service exists. При работе с приложением-службой можно выбрать ссылку в окне свойств для автоматического добавления соответствующих установщиков в проект.When you work with a service application, you can select a link in the Properties window to automatically add the appropriate installers to your project.

Примечание

Значения свойств для службы копируются из класса службы в класс установщика.Property values for your service are copied from the service class to the installer class. Обновляемые значения свойств в классе службы не обновляются автоматически в установщике.If you update the property values on the service class, they are not automatically updated in the installer.

При добавлении установщика в проект в нем создается класс (который по умолчанию называется ProjectInstaller), а в нем создаются экземпляры соответствующих компонентов установки.When you add an installer to your project, a new class (which, by default, is named ProjectInstaller) is created in the project, and instances of the appropriate installation components are created within it. Этот класс служит центральной точкой для всех компонентов установки, которые требуются для проекта.This class acts as a central point for all of the installation components your project needs. Например, если добавить в приложение вторую службу и щелкнуть ссылку "Добавить установщик", второй класс установщика не будет создан. Вместо этого в существующий класс будет добавлен дополнительный необходимый компонент установки для второй службы.For example, if you add a second service to your application and click the Add Installer link, a second installer class is not created; instead, the necessary additional installation component for the second service is added to the existing class.

Вам не нужно добавлять специальный код в установщики, чтобы обеспечить правильную установку службы.You do not need to do any special coding within the installers to make your services install correctly. Тем не менее иногда может потребоваться изменить содержимое установщиков, если вам нужно добавить специальные функции в процесс установки.However, you may occasionally need to modify the contents of the installers if you need to add special functionality to the installation process.

Примечание

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или выпуска.The dialog boxes and menu commands you see might differ from those described in Help depending on your active settings or edition. Чтобы изменить параметры, выберите в меню Сервис пункт Импорт и экспорт параметров .To change your settings, choose Import and Export Settings on the Tools menu. Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки Visual Studio.For more information, see Personalize the Visual Studio IDE.

Добавление установщиков в приложение-службуTo add installers to your service application

  1. В обозревателе решений откройте конструктор для службы, в которую нужно добавить компонент установки.In Solution Explorer, access Design view for the service for which you want to add an installation component.

  2. Щелкните фон конструктора, чтобы выбрать саму службу, а не один из ее элементов.Click the background of the designer to select the service itself, rather than any of its contents.

  3. Щелкните правой кнопкой мыши в активном окне конструктора и выберите команду Добавить установщик.With the designer in focus, right-click, and then click Add Installer.

    В проект будут добавлены новый класс ProjectInstaller и два компонента установки ServiceProcessInstaller и ServiceInstaller, в которые будут скопированы значения свойств для службы.A new class, ProjectInstaller, and two installation components, ServiceProcessInstaller and ServiceInstaller, are added to your project, and property values for the service are copied to the components.

  4. Щелкните компонент ServiceInstaller и убедитесь, что для свойства ServiceName задано то же значение, что и для свойства ServiceName в службе.Click the ServiceInstaller component and verify that the value of the ServiceName property is set to the same value as the ServiceName property on the service itself.

  5. Чтобы определить, как будет запущена служба, щелкните компонент ServiceInstaller и задайте для свойства StartType соответствующее значение.To determine how your service will be started, click the ServiceInstaller component and set the StartType property to the appropriate value.

    ЗначениеValue РезультатResult
    Manual Служба должна быть запущена вручную после установки.The service must be manually started after installation. Дополнительные сведения см. в разделе Практическое руководство. Запуск служб.For more information, see How to: Start Services.
    Automatic Служба будет запускаться сама при перезагрузке компьютера.The service will start by itself whenever the computer reboots.
    Disabled Запуск службы невозможен.The service cannot be started.
  6. Чтобы определить контекст безопасности, в котором будет запущена служба, щелкните компонент ServiceProcessInstaller и задайте соответствующие значения свойств.To determine the security context in which your service will run, click the ServiceProcessInstaller component and set the appropriate property values. Дополнительные сведения см. в разделе Практическое руководство. Назначение службам контекста безопасности.For more information, see How to: Specify the Security Context for Services.

  7. Переопределите все методы, для которых нужно выполнить дополнительную обработку.Override any methods for which you need to perform custom processing.

  8. Повторите шаги 1–7 для каждой дополнительной службы в проекте.Perform steps 1 through 7 for each additional service in your project.

    Примечание

    Для каждой дополнительной службы в проекте необходимо добавить в класс ProjectInstaller проекта дополнительный компонент ServiceInstaller.For each additional service in your project, you must add an additional ServiceInstaller component to the project's ProjectInstaller class. Компонент ServiceProcessInstaller, добавленный на шаге 3, работает со всеми отдельными установщиками служб в проекте.The ServiceProcessInstaller component added in step three works with all of the individual service installers in the project.

См. такжеSee also