¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

ServiceProcessInstaller (Clase)

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

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

public class ServiceProcessInstaller : ComponentInstaller

El tipo ServiceProcessInstaller expone los siguientes miembros.

  NombreDescripción
Método públicoServiceProcessInstallerCrea una nueva instancia de la clase ServiceProcessInstaller.
Arriba

  NombreDescripción
Propiedad públicaAccountObtiene o establece el tipo de cuenta en la que se ejecutará esta aplicación de servicio.
Propiedad protegidaCanRaiseEventsObtiene un valor que indica si el componente puede generar un evento. (Se hereda de Component).
Propiedad públicaContainerObtiene IContainer que contiene Component. (Se hereda de Component).
Propiedad públicaContextObtiene o establece información sobre la instalación actual. (Se hereda de Installer).
Propiedad protegidaDesignModeObtiene un valor que indica si Component está actualmente en modo de diseño. (Se hereda de Component).
Propiedad protegidaEventsObtiene la lista de controladores de eventos asociados a Component. (Se hereda de Component).
Propiedad públicaHelpTextObtiene un texto de ayuda que se muestra para las opciones de instalación del servicio. (Invalida a Installer.HelpText).
Propiedad públicaInstallersObtiene la colección de instaladores que contiene este instalador. (Se hereda de Installer).
Propiedad públicaParentObtiene o establece el instalador que contiene la colección a la que pertenece este instalador. (Se hereda de Installer).
Propiedad públicaPasswordObtiene o establece la contraseña asociada a la cuenta de usuario en la que se ejecuta la aplicación de servicio.
Propiedad públicaSiteObtiene o establece ISite de Component. (Se hereda de Component).
Propiedad públicaUsernameObtiene o establece la cuenta de usuario en la que se ejecutará la aplicación de servicio.
Arriba

  NombreDescripción
Método públicoCommitCuando se reemplaza en una clase derivada, finaliza la transacción de instalación. (Se hereda de Installer).
Método públicoCopyFromComponentImplementa el método ComponentInstaller.CopyFromComponent de la clase base sin un comportamiento específico de la clase ServiceProcessInstaller. (Invalida a ComponentInstaller.CopyFromComponent(IComponent)).
Método públicoCreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto. (Se hereda de MarshalByRefObject).
Método públicoDispose()Libera todos los recursos utilizados por Component. (Se hereda de Component).
Método protegidoDispose(Boolean)Libera los recursos no administrados que utiliza Component y libera los recursos administrados de forma opcional. (Se hereda de Component).
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegidoFinalizeLibera recursos no administrados y realiza otras operaciones de limpieza antes de que se reclame el objeto Component durante la recolección de elementos no utilizados. (Se hereda de Component).
Método públicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject).
Método protegidoGetServiceDevuelve un objeto que representa el servicio suministrado por Component o por Container. (Se hereda de Component).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoInitializeLifetimeServiceObtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject).
Método públicoInstallEscribe información de la aplicación de servicio en el Registro. Este método está pensado para que lo utilicen las herramientas de instalación, que llaman automáticamente a los métodos adecuados. (Invalida a Installer.Install(IDictionary)).
Método públicoIsEquivalentInstallerDetermina si el instalador especificado instala el mismo objeto que este instalador. (Se hereda de ComponentInstaller).
Método protegidoMemberwiseClone() Crea una copia superficial del Object actual. (Se hereda de Object).
Método protegidoMemberwiseClone(Boolean)Crea una copia superficial del objeto MarshalByRefObject actual. (Se hereda de MarshalByRefObject).
Método protegidoOnAfterInstallGenera el evento AfterInstall. (Se hereda de Installer).
Método protegidoOnAfterRollbackGenera el evento AfterRollback. (Se hereda de Installer).
Método protegidoOnAfterUninstallGenera el evento AfterUninstall. (Se hereda de Installer).
Método protegidoOnBeforeInstallGenera el evento BeforeInstall. (Se hereda de Installer).
Método protegidoOnBeforeRollbackGenera el evento BeforeRollback. (Se hereda de Installer).
Método protegidoOnBeforeUninstallGenera el evento BeforeUninstall. (Se hereda de Installer).
Método protegidoOnCommittedGenera el evento Committed. (Se hereda de Installer).
Método protegidoOnCommittingGenera el evento Committing. (Se hereda de Installer).
Método públicoRollbackDeshace la información de la aplicación de servicio que el procedimiento de instalación escribió en el Registro. Este método está pensado para que lo utilicen las herramientas de instalación que procesan automáticamente los métodos apropiados. (Invalida a Installer.Rollback(IDictionary)).
Método públicoToStringDevuelve un objeto String que contiene el nombre del objeto Component, en caso de que exista. Este método no debe reemplazarse. (Se hereda de Component).
Método públicoUninstallCuando se reemplaza en una clase derivada, quita una instalación. (Se hereda de Installer).
Arriba

  NombreDescripción
Evento públicoAfterInstallSe produce después de ejecutarse los métodos Install de todos los instaladores de la propiedad Installers. (Se hereda de Installer).
Evento públicoAfterRollbackSe produce después de deshacerse la instalación de todos los instaladores de la propiedad Installers. (Se hereda de Installer).
Evento públicoAfterUninstallSe produce después de que todos los instaladores de la propiedad Installers realicen sus operaciones de desinstalación. (Se hereda de Installer).
Evento públicoBeforeInstallSe produce antes de ejecutarse el método Install de cada instalador en la colección de instaladores. (Se hereda de Installer).
Evento públicoBeforeRollbackSe produce antes de deshacerse los instaladores de la propiedad Installers. (Se hereda de Installer).
Evento públicoBeforeUninstallSe produce antes de que los instaladores de la propiedad Installers realicen sus operaciones de desinstalación. (Se hereda de Installer).
Evento públicoCommittedSe produce después de que todos los instaladores de la propiedad Installers confirmen sus instalaciones. (Se hereda de Installer).
Evento públicoCommittingSe produce antes de que los instaladores de la propiedad Installers confirmen sus instalaciones. (Se hereda de Installer).
Evento públicoDisposedSe produce cuando el componente se elimina mediante una llamada al método Dispose. (Se hereda de Component).
Arriba

ServiceProcessInstaller realiza trabajo común a todos los servicios de un ejecutable. La utilidad de instalación lo utiliza para escribir valores del Registro asociados a los servicios que desea instalar.

Para instalar un servicio, cree una clase de instalador del proyecto que herede de la clase Installer y establezca RunInstallerAttribute en la clase en true. En el proyecto, cree una instancia de ServiceProcessInstaller por cada aplicación de servicio y una instancia de ServiceInstaller para cada servicio de la aplicación. Finalmente, agregue la instancia de ServiceProcessInstaller y las instancias de ServiceInstaller a la clase de instalador del proyecto.

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

Para una instancia de ServiceProcessInstaller, entre las propiedades que puede modificar se incluye la especificación de que una aplicación de servicio se ejecute en una cuenta que no sea la del usuario que inició la sesión. Es posible especificar un par Username y Password determinado en el cual debe ejecutarse el servicio o se puede utilizar Account para especificar que el servicio se ejecute en la cuenta de sistema del equipo correspondiente, una cuenta de servicio local o de red o una cuenta de usuario.

NotaNota

La cuenta de sistema del equipo no es igual que la cuenta de administrador.

Normalmente, no habrá que llamar a los métodos en ServiceInstaller dentro del código; generalmente será la la utilidad de instalación sólo la que los llame. La utilidad de instalación llama de forma automática a los métodos ServiceProcessInstaller.Install y ServiceInstaller.Install 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 una aplicación mantiene de forma automática la información acerca de los componentes que ya se han instalado mediante la propiedad Installer.Context del instalador del proyecto. Esta información de estado se actualiza continuamente a medida que la utilidad instala la instancia de ServiceProcessInstaller y cada una de las instancias de ServiceInstaller. No suele ser necesario que el código modifique esta información de estado de forma explícita.

Al crear una instancia de ServiceProcessInstaller, se llama al constructor ComponentInstaller de la clase base.

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, al que llamaría la unidad de instalación, se crean los objetos ServiceInstaller para cada uno de estos servicios y ServiceProcessInstaller para el ejecutable. Para que la utilidad de instalación reconozca MyProjectInstaller como un instalador válido, el atributo RunInstallerAttribute se establece en true.

Las propiedades opcionales se establecen en el instalador del proceso y los instaladores del servicio antes de que los instaladores se agreguen a la colección Installers. Cuando la utilidad de instalación obtiene acceso a MyProjectInstaller, los objetos agregados a la colección Installers se instalan uno a uno mediante una llamada a InstallerCollection.Add. Durante el proceso, el instalador mantiene información de estado que indica qué objetos se instalaron, para que puedan deshacerse todos uno a uno en el caso de que se produzca un error en la instalación.

Normalmente, no se crea una instancia de la clase de instalador del proyecto de forma explícita. Habría que crearla y agregarla a RunInstallerAttribute, pero la utilidad de instalación realmente llama a la clase y, por lo tanto, crea instancias de la clase.


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

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft