2009-08-31 12 views
6

Tengo un servicio de Windows simple desarrollado en VS.net 2008 y VB.net. Cuando instalo el servicio utilizando Installutil.exe desde el símbolo del sistema, funciona como un amuleto.El servicio de Windows no aparece cuando se instala con el proyecto de instalación

Cuando trato de agregar un proyecto de instalación y establecer el resultado y compilarlo e instalarlo aunque dice correctamente instalado, no se muestra en los servicios.

El registro de eventos muestra que se ha instalado correctamente. Solo revisé el registro, sí ubiqué los ensambles en HKEY_CURRENT_USER \ Software \ Microsoft \ installer \ assemblies.

Pero no entiendo por qué no aparece en la lista de servicios. Me refresqué y reinicié.

¿Alguna idea?

Gracias

Respuesta

1

Un par de ideas:

¿Va a instalar en las mismas cuenta de Windows que está intentando ejecutar el programa bajo? ¿Tiene la propiedad "InstallAllUsers" del Proyecto de instalación establecida en True?

¿Está seguro de que tiene las propiedades ProductName y Title en el proyecto de instalación establecidas correctamente? Tal vez el servicio aparece en la lista con un nombre diferente, es decir, "SetupProject1" o algo así.

De forma similar, en la clase ProjectInstaller de su servicio, en la vista de diseño, mire las propiedades del ServiceInstaller y asegúrese de que las propiedades ServiceName y DisplayName se establezcan en lo que desea.

+0

Gracias. Revisé InstallAllUsers en true y el nombre del producto y el título son correctos. Incluso en el instalador de servicios es correcto. Incluso reinicié mi máquina. El registro de eventos muestra que el servicio se instaló correctamente. –

+1

Este paso realmente no me ayudó a resolver el problema, la solución publicada por rowmark a continuación fue el paso que falta en mi caso – Sanket

11

Solución encontrada Tiene que agregar una acción personalizada en su proyecto MSI. Por lo tanto, en acciones personalizadas, agregue la salida de su servicio a la sección Instalar. Esto ejecutará el código de instalación requerido para su servicio. es decir, lo mismo que lo hace el installutil.exe

Gracias por toda la ayuda

+1

No olvides hacer lo mismo en la sección "desinstalar", de lo contrario, desinstalar el software permitirá un "fantasma "servicio allí. – andrecarlucci

+0

He hecho esto también. El software se copia en los lugares correctos, pero el servicio no aparece en la lista. –

+0

Me salteé el paso donde crea un instalador para el servicio dentro del proyecto de servicio. http://msdn.microsoft.com/en-us/library/zt39148a(v=VS.100).aspx –

6

que tenía el mismo problema y no prestaba atención a la parte antes de crear el proyecto de instalación. http://msdn.microsoft.com/en-us/library/zt39148a(v=VS.100).aspx

Para crear los instaladores para su servicio

En el Explorador de soluciones, haga clic con Service1.vb o Service1.cs y seleccione Ver diseñador.

Haga clic en el fondo del diseñador para seleccionar el servicio en sí, en lugar de cualquiera de sus contenidos.

Con el diseñador enfocado, haga clic con el botón derecho y luego haga clic en Agregar instalador.

De forma predeterminada, se agrega a su proyecto una clase de componente que contiene dos instaladores. El componente se llama ProjectInstaller, y los instaladores que contiene son el instalador para su servicio y el instalador para el proceso asociado al servicio.

En la vista Diseño para ProjectInstaller, haga clic en ServiceInstaller1 o serviceInstaller1.

En la ventana Propiedades, asegúrese de que la propiedad ServiceName esté establecida en MyNewService.

Establezca la propiedad StartType en Automático.

En el diseñador, haga clic en ServiceProcessInstaller1 (para un proyecto de Visual Basic) o serviceProcessInstaller1 (para un proyecto de Visual C#). Establezca la propiedad Cuenta en LocalSystem. Esto hará que el servicio se instale y se ejecute en una cuenta de servicio local.

+0

Esto finalmente lo resolvió para mí (para obtener el nombre correcto del servicio) pero también tuvo que agregar la acción personalizada según lo descrito por rowmark, de lo contrario, ningún servicio aparecía en absoluto –

+0

Gran respuesta. Me lo resolvió también –

Cuestiones relacionadas