Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase ServiceProcessInstaller

 

Publicado: noviembre de 2016

Instala un ejecutable que contiene clases que extienden ServiceBase. Utilidades de instalación, como InstallUtil.exe, llama a esta clase al instalar una aplicación de servicio.

Espacio de nombres:   System.ServiceProcess
Ensamblado:  System.ServiceProcess (en System.ServiceProcess.dll)

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Configuration.Install.Installer
        System.Configuration.Install.ComponentInstaller
          System.ServiceProcess.ServiceProcessInstaller

public class ServiceProcessInstaller : ComponentInstaller

NombreDescripción
System_CAPS_pubmethodServiceProcessInstaller()

Crea una nueva instancia de la clase ServiceProcessInstaller.

NombreDescripción
System_CAPS_pubpropertyAccount

Obtiene o establece el tipo de cuenta bajo la que desea ejecutar esta aplicación de servicio.

System_CAPS_protpropertyCanRaiseEvents

Obtiene un valor que indica si el componente puede provocar un evento.(Heredado de Component).

System_CAPS_pubpropertyContainer

Obtiene IContainer que contiene Component.(Heredado de Component).

System_CAPS_pubpropertyContext

Obtiene o establece información sobre la instalación actual.(Heredado de Installer).

System_CAPS_protpropertyDesignMode

Obtiene un valor que indica si la Component está actualmente en modo de diseño.(Heredado de Component).

System_CAPS_protpropertyEvents

Obtiene la lista de controladores de eventos que se adjuntará a este Component.(Heredado de Component).

System_CAPS_pubpropertyHelpText

Obtiene el texto que se muestra para las opciones de instalación del servicio de ayuda.(Invalida Installer.HelpText).

System_CAPS_pubpropertyInstallers

Obtiene la colección de instaladores que contiene este instalador.(Heredado de Installer).

System_CAPS_pubpropertyParent

Obtiene o establece el instalador que contiene la colección a la que pertenece este instalador.(Heredado de Installer).

System_CAPS_pubpropertyPassword

Obtiene o establece la contraseña asociada a la cuenta de usuario bajo la que se ejecuta la aplicación de servicio.

System_CAPS_pubpropertySite

Obtiene o establece la ISite de la Component.(Heredado de Component).

System_CAPS_pubpropertyUsername

Obtiene o establece la cuenta de usuario bajo la que se ejecutará la aplicación de servicio.

NombreDescripción
System_CAPS_pubmethodCommit(IDictionary)

Cuando se reemplaza en una clase derivada, finaliza la transacción de instalación.(Heredado de Installer).

System_CAPS_pubmethodCopyFromComponent(IComponent)

Implementa la clase base ComponentInstaller.CopyFromComponent método sin ningún ServiceProcessInstaller comportamiento específico de la clase.(Invalida ComponentInstaller.CopyFromComponent(IComponent)).

System_CAPS_pubmethodCreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar a un proxy que se utiliza para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodDispose()

Libera todos los recursos que usa Component.(Heredado de Component).

System_CAPS_protmethodDispose(Boolean)

Libera los recursos no administrados que usa Component y libera los recursos administrados de forma opcional.(Heredado de Component).

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Libera recursos no administrados y realiza otras operaciones de limpieza antes de que se reclame el elemento Component durante la recolección de elementos no usados.(Heredado de Component).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_protmethodGetService(Type)

Devuelve un objeto que representa el servicio suministrado por Component o por Container.(Heredado de Component).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodInitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodInstall(IDictionary)

Escribe la información de la aplicación de servicio en el registro. Este método está pensado para usarse con las herramientas de instalación, que llaman automáticamente a los métodos adecuados.(Invalida Installer.Install(IDictionary)).

System_CAPS_pubmethodIsEquivalentInstaller(ComponentInstaller)

Determina si el instalador especificado instala el mismo objeto que este instalador.(Heredado de ComponentInstaller).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia superficial del elemento actual MarshalByRefObject objeto.(Heredado de MarshalByRefObject).

System_CAPS_protmethodOnAfterInstall(IDictionary)

Genera el evento AfterInstall.(Heredado de Installer).

System_CAPS_protmethodOnAfterRollback(IDictionary)

Genera el evento AfterRollback.(Heredado de Installer).

System_CAPS_protmethodOnAfterUninstall(IDictionary)

Genera el evento AfterUninstall.(Heredado de Installer).

System_CAPS_protmethodOnBeforeInstall(IDictionary)

Genera el evento BeforeInstall.(Heredado de Installer).

System_CAPS_protmethodOnBeforeRollback(IDictionary)

Genera el evento BeforeRollback.(Heredado de Installer).

System_CAPS_protmethodOnBeforeUninstall(IDictionary)

Genera el evento BeforeUninstall.(Heredado de Installer).

System_CAPS_protmethodOnCommitted(IDictionary)

Genera el evento Committed.(Heredado de Installer).

System_CAPS_protmethodOnCommitting(IDictionary)

Genera el evento Committing.(Heredado de Installer).

System_CAPS_pubmethodRollback(IDictionary)

Deshace la información de la aplicación de servicio escribe en el registro mediante el procedimiento de instalación. Este método está pensado para usarse con las herramientas de instalación, que procesan los métodos apropiados automáticamente.(Invalida Installer.Rollback(IDictionary)).

System_CAPS_pubmethodToString()

Devuelve un String que contiene el nombre de la Component, si existe. Este método no se debe invalidar.(Heredado de Component).

System_CAPS_pubmethodUninstall(IDictionary)

Cuando se reemplaza en una clase derivada, quita una instalación.(Heredado de Installer).

NombreDescripción
System_CAPS_pubeventAfterInstall

Se produce después de ejecutarse los métodos Install de todos los instaladores de la propiedad Installers.(Heredado de Installer).

System_CAPS_pubeventAfterRollback

Se produce después de deshacerse la instalación de todos los instaladores de la propiedad Installers.(Heredado de Installer).

System_CAPS_pubeventAfterUninstall

Se produce después de que todos los instaladores de la propiedad Installers realicen sus operaciones de desinstalación.(Heredado de Installer).

System_CAPS_pubeventBeforeInstall

Se produce antes de ejecutarse el método Install de cada instalador en la colección de instaladores.(Heredado de Installer).

System_CAPS_pubeventBeforeRollback

Se produce antes de deshacerse los instaladores de la propiedad Installers.(Heredado de Installer).

System_CAPS_pubeventBeforeUninstall

Se produce antes de que los instaladores de la propiedad Installers realicen sus operaciones de desinstalación.(Heredado de Installer).

System_CAPS_pubeventCommitted

Se produce después de que todos los instaladores de la propiedad Installers confirmen sus instalaciones.(Heredado de Installer).

System_CAPS_pubeventCommitting

Se produce antes de que los instaladores de la propiedad Installers confirmen sus instalaciones.(Heredado de Installer).

System_CAPS_pubeventDisposed

Se produce cuando el componente se elimina mediante una llamada a la Dispose (método).(Heredado de Component).

El ServiceProcessInstaller trabajo común a todos los servicios en un archivo ejecutable. Se utiliza la utilidad de instalación para escribir valores del registro asociados con los servicios que desea instalar.

Para instalar un servicio, cree una clase de instalador del proyecto que herede de Installer, y establecer el RunInstallerAttribute en la clase para true. Dentro del proyecto, crear instancias de una ServiceProcessInstaller instancia por la aplicación de servicio y uno ServiceInstaller instancia para cada servicio en la aplicación. Por último, agregue el ServiceProcessInstaller instancia y el ServiceInstaller instancias de la clase de instalador del proyecto.

Cuando se ejecuta InstallUtil.exe, la utilidad busca clases en el ensamblado de servicio con el RunInstallerAttribute establecido en true. Agregar clases al ensamblado de servicio agregándolas a la Installers colección asociada al instalador del proyecto. Si RunInstallerAttribute es false, la utilidad de instalación omite el instalador del proyecto.

Para una instancia de ServiceProcessInstaller, puede modificar las propiedades incluyen especificar que una aplicación de servicio se ejecute bajo una cuenta que no sea el usuario que inició sesión. Puede especificar un determinado Username y Password par en la que debe ejecutarse el servicio o puede usar Account para especificar que el servicio se ejecute bajo la cuenta del sistema del equipo, una variable local o cuenta de servicio de red o una cuenta de usuario.

System_CAPS_noteNota

Cuenta del sistema del equipo no es la misma que la cuenta de administrador.

Normalmente, no se llame a los métodos en ServiceInstaller dentro del código; se denominan generalmente sólo desde la utilidad de instalación. La utilidad de instalación llama automáticamente a la ServiceProcessInstaller.Install y ServiceInstaller.Install métodos durante el proceso de instalación. Deshace los errores, si es necesario, mediante una llamada a Rollback (o ServiceInstaller.Rollback) en todos los componentes instalados anteriormente.

La rutina de instalación de la aplicación mantiene información automáticamente acerca de los componentes ya instalados, mediante el instalador de proyecto Installer.Context. Esta información de estado se actualiza continuamente en el ServiceProcessInstaller instancia y cada ServiceInstaller la utilidad instala la instancia. Normalmente no es necesario para el código modifique esta información de estado de forma explícita.

Crear instancias de un ServiceProcessInstaller hace que el constructor de clase base, ComponentInstaller, que se llame.

En el ejemplo siguiente se crea un instalador del proyecto denominado MyProjectInstaller, que hereda de Installer. Se supone que hay un ejecutable de servicio que contiene dos servicios: "Hello-World Service 1" y "Hello-World Service 2". En el constructor de MyProjectInstaller (que llamaría la utilidad de instalación), ServiceInstaller objetos se crean para cada servicio y un ServiceProcessInstaller para el ejecutable. La utilidad de instalación reconozca MyProjectInstaller como un instalador válido, el RunInstallerAttribute está establecido en true.

Propiedades opcionales se establecen en el instalador del proceso y los instaladores del servicio antes de que los instaladores se agreguen a la Installers recopilación. Cuando la utilidad de instalación obtiene acceso a MyProjectInstaller, los objetos se agregan a la Installers la colección mediante una llamada a InstallerCollection.Add se instalan. Durante el proceso, el instalador mantiene información de estado que indica qué objetos se han instalado, por lo que cada objeto puede descartarse a su vez en el caso de un error de instalación.

Normalmente, no se crean instancias de la clase de instalador del proyecto explícitamente. ¿Crear y agregar el RunInstallerAttribute, pero la utilidad de instalación llama realmente y, por tanto, la clase, crea una instancia.

using System;
using System.Collections;
using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;

[RunInstaller(true)]
public class MyProjectInstaller : Installer
{
    private ServiceInstaller serviceInstaller1;
    private ServiceInstaller serviceInstaller2;
    private ServiceProcessInstaller processInstaller;

    public MyProjectInstaller()
    {
        // Instantiate installers for process and services.
        processInstaller = new ServiceProcessInstaller();
        serviceInstaller1 = new ServiceInstaller();
        serviceInstaller2 = new ServiceInstaller();

        // The services run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem;

        // The services are started manually.
        serviceInstaller1.StartType = ServiceStartMode.Manual;
        serviceInstaller2.StartType = ServiceStartMode.Manual;

        // ServiceName must equal those on ServiceBase derived classes.
        serviceInstaller1.ServiceName = "Hello-World Service 1";
        serviceInstaller2.ServiceName = "Hello-World Service 2";

        // Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller1);
        Installers.Add(serviceInstaller2);
        Installers.Add(processInstaller);
    }

    public static void Main()
    {
        Console.WriteLine("Usage: InstallUtil.exe [<service>.exe]");
    }
}

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: