ServiceInstaller.Install(IDictionary) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Устанавливает службу, записывая в реестр сведения о служебном приложении. Этот метод предназначен для использования инструментами установки, которые автоматически обрабатывают соответствующие методы.
public:
override void Install(System::Collections::IDictionary ^ stateSaver);
public override void Install (System.Collections.IDictionary stateSaver);
override this.Install : System.Collections.IDictionary -> unit
Public Overrides Sub Install (stateSaver As IDictionary)
Параметры
- stateSaver
- IDictionary
Объект IDictionary, содержащий контекстные данные, связанные с процессом установки.
Исключения
Средства установки не содержат ServiceProcessInstaller для исполняемого файла.
-или-
Имя файла сборки — null
или пустая строка.
-или-
Недопустимое имя службы.
-или-
Не удалось открыть диспетчер служб.
Отображаемое имя службы содержит более 255 символов.
Системе не удалось создать дескриптор для службы.
-или-
Служба с этим именем уже установлена.
Комментарии
Как правило, методы ServiceInstaller в коде не вызываются. Обычно они вызываются только программой установки. Служебная программа установки автоматически вызывает Install метод во время установки. При необходимости он возвращает сбои путем вызова Rollback объекта, создающего исключение.
Подпрограмма установки приложения автоматически сохраняет сведения о уже установленных компонентах с помощью установщика Installer.Contextпроекта . Эта информация о состоянии, передаваемая в Install качестве stateSaver
параметра, постоянно обновляется по мере установки экземпляра ServiceProcessInstaller , и каждый ServiceInstaller экземпляр устанавливается служебной программой. Обычно нет необходимости явно изменять эти сведения о состоянии в коде.
Объект , связанный ServiceProcessInstaller с классом установки проекта, содержит сведения об установке, общие для всех ServiceInstaller экземпляров проекта. Если эта служба отделяет ее от других служб в проекте установки, эта информация о службе устанавливается этим методом.
Чтобы установить службу, создайте класс установщика проекта, который наследуется от Installer класса , и присвойте RunInstallerAttribute атрибуту класса значение true
. В проекте создайте по одному ServiceProcessInstaller экземпляру для каждого приложения службы и по одному ServiceInstaller экземпляру для каждой службы в приложении. В конструкторе класса установщика проекта задайте свойства установки для службы с помощью ServiceProcessInstaller экземпляров и ServiceInstaller и добавьте экземпляры в коллекцию Installers .
Примечание
Рекомендуется использовать конструктор для добавления экземпляров установщика; Однако если необходимо добавить в коллекцию Installers в методе Install , обязательно выполните те же дополнения к коллекции в методе Uninstall .
Для всех классов, производных Installers от Installer класса , состояние коллекции должно быть одинаковым в методах Install и Uninstall . Однако можно избежать обслуживания коллекции Install в методах и Uninstall , если добавить экземпляры установщика в коллекцию Installers в конструкторе пользовательского класса установщика.