Anda di halaman 1dari 19

Crear un servicio Windows y un Instalador

para un servicio Windows.


Oscar Hernando Barón Roa

Hola amigos el siguiente articulo permite explicar de forma clara como crear un servicio
windows y su instalador de una manera fácil y sencilla.

Crearemos un proyecto en C#, de tipo Windows Service, este ejemplo lo hare en Visual Studio
2010 y Framework 4.0, el cual será igual para versiones 2005 y 2008, así como Framework 2.0,
3.0 y 3.5.

Creamos el proyecto y le colocamos un nombre, para el ejemplo será WinsowsService1.

Asi sera la estructura del proyecto creado. Hacemos doble clic el objeto Service1.cs, luego en
propiedades (F4).

1 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

En las propiedades "CanPauseAndContinue" y "CanShutdown" colocamos el valor True que


por defecto son False. Estas propiedades permiten pausar, reiniciar y detener el servicio
windows.

En el Code Behind del Service1.cs, agregaremos los siguientes using.

using System.Timers;
using System.IO;

Igualmente agregaremos el using

using System.Configuration;

Para leer del archivo de configuración agregaremos la referencia de System.Configuration,


hacemos clic derecho en el proyecto sobre References y luego Add Reference. Ubicamos la
referencia solicitada y hacemos clic en OK.

2 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Ahora hacemos clic sobre el proyecto y hacemos clic en Propiedades (Properties). Y luego
sobre la pestaña Settings.

En settings agregaremos una llave que nos permitira configurar el path de la carpeta donde
escribiremos un archivo cada vez que un timer haga un intervalo. Para el ejemplo colocare la
llave strPathLog con el valor C:\Logs\LogService.txt.
3 OnGlasses.Net 2010 © Todos los derechos reservados.
Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Volvemos a Service1.cs y agregamos un objeto Timer y lo inicializamos dentro del constructor


despues de InitializeComponent(), agregamos el evento Elapsed al timer.

Nota: Para mas información del timer vea http://msdn.microsoft.com/en-


us/library/system.timers.timer.elapsed.aspx

Agregamos el siguiente código al método OnStart():


myTimer.Start();

Agregamos el siguiente código al método OnStop():


myTimer.Stop();

Ahora creamos el evento que maneja el evento Elapsed (myTimer_Elapsed) del Timer, evento
el cual nos permitira escribir en un log cada intervalo de tiempo del timer.

void myTimer_Elapsed(object sender, ElapsedEventArgs e)


{
try
{
string strPathLog = ConfigurationManager.AppSettings["strPathLog"].ToString();
TextWriter tw = new StreamWriter(strPathLog, true);
tw.WriteLine("Log registrado el : " + DateTime.Now.ToString() + ", Intervalo No.: " +
myTimer.Interval.ToString());
tw.Close();
}
catch (Exception ex)
{
System.Diagnostics.EventLog.WriteEntry("Application", "Excepción: " + ex.Message);
4 OnGlasses.Net 2010 © Todos los derechos reservados.
Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

}
}

Para crear un instalador, agregaremos al proyecto un nuevo item, clic derecho sobre el
proyecto WindowsService1– Add – New Item..

5 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Seleccione el objeto Installer Class así como aparece en la imagen.

Debemos agregar al ToolBox o Barra de herramientas los elementos ServiceInstaller y


ServiceProcessInstaller. En el toolbox hacemos clic derecho en "Choose Items..." o Elegir
elementos.

6 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Se muestra la siguiente ventana en donde seleccionaremos los elementos ServiceInstaller y


ServiceProcessInstaler, haciendo clic en los checkbox a la izquierda.

Una vez agreguemos los elementos al toolbox los arrastraremos sobre el Installer class que
agregamos para nuestro ejemplo Installer1.cs y se vera de la siguiente manera.

7 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Para serviceInstaller1, uno de los elementos recientemente agregados daremos F4 o


propiedades y configuraremos. Description, DisplayName, ServiceName y StartType.

Propiedad Valor
Description Automatic
DisplayName Servicio ejemplo onglasses.net
ServiceName Servicio Onglasses.Net
StartType Automatic

Para el elemento serviceProcessInstaller1 (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.) en sus propiedades configuramos, Account (Obtiene o establece
el tipo de cuenta en la que se ejecutará esta aplicación de servicio ejecutara el servicio).
Parent (Installer1 *cuidado con esta propiedad porque se puede des configurar y producir
errores)

8 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Ahora debemos generar un proyecto de tipo instalador. Sobre la solución hacer clic derecho en
Add o Agregar – New Project.

Seleccionamos en Other Project Types u Otros tipos de proyectos, Setup Project. Le damos un
nombre, para el ejemplo será Setup1.

9 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Sobre el proyecto creado Setup1, hacer clic derecho dar clic en Add – Project Output…,

10 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Seleccione Primary output, para el proyecto WindowsService1 lo cual permite agregar los
ejecutables de nuestro servicio Windows.

Hacer clic derecho sobre el proyecto de Setup1 en la ventana del explorador de soluciones, y
seleccionar Custom Actions.

11 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Hacemos clic derecho sobre Custom Actions y Seleccionamos Add Custom Action…

Hacemos clic sobre Application Folder.

Seleccionamos Primary output from WindowsService1(Active).

12 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

He visto y es importante cambiar la propiedad DefaultLocation de "Application Folder"


porque una vez se genera el Setup puede dar un error de instalación. Para este articulo
[ProgramFilesFolder]\[ProductName] permite instalarlo dentro de archivos de programa, en
una carpeta llamada con el nombre del producto, también puede ser de la forma
[ProgramFilesFolder]\Onglasses.

Una vez terminamos nuestro instalador es importante generar el proyecto WindowsService1 y


seguido generar el proyecto Setup1. Una vez se ha realizado la generación de los proyectos
correctamente y si no hay errores podemos ejecutar el instalador, el cual se puede realizar
directamente desde la carpeta donde se genero o en el Visual Studio, hacer clic derecho sobre
Setup1 y dar clic en Install, desde esta opción igualmente se puede ejecutar Unistall.

13 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

14 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Una vez se ejecuta el instalador damos clic en Next o Siguiente.

Seleccionamos la carpeta de instalación.

15 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Estado de la instalación.

16 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Instalación finalizada o completa.

Para verificar nuestro instalador vamos a Inicio – Ejecutar, escribimos services.msc.

Abriremos el administrador de servicios ubicamos el servicio de onglasses.net y podemos


iniciarlo, clic derecho sobre el servicio e Iniciar.

17 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Progreso de iniciación del servicio.

Ahora vamos a la ruta del log y verificamos el funcionamiento del servicio


C:\Logs\LogService.txt.

18 OnGlasses.Net 2010 © Todos los derechos reservados.


Crear un servicio Windows y un Instalador
para un servicio Windows.
Oscar Hernando Barón Roa

Bueno espero les haya sido de mucha utilidad este tutorial, los servicios Windows en muchos
casos son útiles pero a veces mal utilizados.

Junto a este tutorial podrán encontrar el código fuente del ejemplo que se encuentra en Visual
Studio 2010.

Saludos!!

19 OnGlasses.Net 2010 © Todos los derechos reservados.

Anda mungkin juga menyukai