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

对于从类派生的所有类 Installer ,集合的状态 Installers 在和方法中必须相同 Install Uninstall 。 但是, Install Uninstall 如果将安装程序实例添加到 Installers 自定义安装程序类构造函数中的集合,则可以避免在和方法中维护集合。

适用于

另请参阅