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 .
Note
Рекомендуется использовать конструктор для добавления экземпляров установщика; Однако если необходимо добавить Installers в коллекцию в Install методе, обязательно выполните те же дополнения к коллекции в методе Uninstall .
Для всех классов, производных от Installer класса, состояние Installers коллекции должно быть одинаковым в Install и Uninstall методах. Однако при добавлении экземпляров Install установщика в коллекцию в конструктор пользовательского класса установщика можно избежать обслуживания коллекции.UninstallInstallers