c# - studio - El servicio de Windows no aparece en la lista de servicios después de la instalación
visual studio installer (8)
He creado un servicio de Windows en c #, utilizando Visual Studio 2008. Seguí esto: http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx
Creé un proyecto de instalación, como se indica en el artículo, y lo ejecuté ... instala mi servicio en c: / archivos de programa / producto, etc. Sin embargo, no aparece en la lista de servicios ...
¿Qué me estoy perdiendo?
Al instalar servicios, recomendaría encarecidamente el uso de NSSM , que me funcionó bien para todas mis necesidades de WinService. Puede instalar cualquier archivo ejecutable (incluso si .bat, .cmd) como servicio, y garantiza que su servicio esté siempre en funcionamiento.
Para utilizar esta herramienta:
Luego verifique la lista de servicios, debería estar allí, arriba y funcionando.
Aquí hay un buen tutorial de tgeek001 de CodeProject.com que me ayudó. Incluye varias cosas que no vi en las publicaciones anteriores: 1. Código del controlador de eventos para detener el servicio antes de desinstalarlo 2. Condiciones y propiedades específicas en el código de Acciones personalizadas para evitar errores (esto corrigió el Error 1001 que experimenté al seguir las instrucciones en la respuesta aceptada anterior) 3. La propiedad del Servicio de Win "Eliminar versión anterior" desplegada en verdadero
http://www.codeproject.com/Tips/575177/Window-Service-Deployment-using-VS
Lo siguiente es del tutorial para la configuración de acciones personalizadas (asuntos de casos):
- Instalar, establezca la propiedad Condición en lo siguiente: "NO (instalado o ANTERIOR A LAS VERSIONESINSTALADAS)"
- Desinstalar, establezca la propiedad Condición en: "NO ACTUALIZANDO EL PRODUCTO, EL PRODUCTO"
- Confirmar: configure el campo "Datos de acción personalizados" en: / OldProductCode = "[PREVIOUSVERSIONSINSTALLED]"
Por último, en el proyecto WinService, asegúrese de establecer el menú desplegable "Eliminar versiones anteriores" en verdadero.
aclamaciones
Descubrí que su clase de instalador estaría en el mismo proyecto que el Servicio. El instalador no puede existir en un proyecto de biblioteca al que hace referencia el Servicio.
En Visual Studio 2013 me encontré con el mismo problema al usar la plantilla InstallShield para la aplicación de servicio. Pero funciona igual que el encanto cuando se usa la plantilla de Proyecto de instalación https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d
así que descargue la plantilla del Proyecto de instalación cierre su estudio, ejecute esta instalación e inicie su estudio, esto funcionará.
Dunn
Este me tiene en la cara, así que lo pongo aquí en caso de que alguien más lo encuentre.
Si siguió las instrucciones de las guías pero aún tiene problemas con la instalación, asegúrese de que su clase de instalador sea pública. Interno no funcionará.
La parte más importante del artículo que has vinculado está aquí.
Para agregar una acción personalizada al proyecto de instalación
1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto de instalación, seleccione Ver y luego elija Acciones personalizadas. Aparece el editor de acciones personalizadas.
2.En el editor de Acciones personalizadas, haga clic con el botón derecho en el nodo Acciones personalizadas y elija Agregar acción personalizada. Aparece el cuadro de diálogo Seleccionar elemento en el proyecto.
3.Haga doble clic en la carpeta de la aplicación en el cuadro de lista para abrirla, seleccione la salida primaria de MyNewService (Activo) y haga clic en Aceptar. La salida principal se agrega a los cuatro nodos de las acciones personalizadas Instalar, Confirmar, Revertir y Desinstalar.
4. Construir el proyecto de instalación.
Si omite estos pasos, su proyecto de configuración compilará y copiará sus archivos en el directorio correcto; sin embargo, no registrarán su binario como un servicio sin estos pasos.
También debo tener en cuenta que esto funciona para versiones anteriores de Visual Studio que tenían / tienen la plantilla de proyecto de instalación / implementación integrada. Las versiones más recientes de Visual Studio tienen diferentes proyectos de instalación / implementación (algunos requieren software de terceros).
Recomendaría buscar en el conjunto de herramientas de WiX y consultar aquí la Instalación de servicios de Windows de WiX.
Sigue estas instrucciones, trabajaron para mí. Para la configuración específica, esa parte está cerca de la parte inferior del artículo.
Tuve este mismo problema y luego me di cuenta de que nunca configuré al padre para el ServiceInstaller.
Haga doble clic en el instalador de su proyecto. El diseñador debe mostrar un instalador de servicios y un instalador de procesos. Al hacer clic en cualquiera de los dos y ver las propiedades, debe tener en cuenta el atributo principal, que debe configurarse con el nombre de clase del instalador del proyecto.
O, si lo haces en código, asegúrate de configurar:
serviceInstaller.Parent = this;
y
serviceProcessInstaller.Parent = this;